Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.

retrofit: reverse-spec data-import-export (5 new REQs, Bucket 2a)#1783

Open
rubenvdlinde wants to merge 1 commit into
developmentfrom
retrofit/rspec-data-import-export-2026-05-24
Open

retrofit: reverse-spec data-import-export (5 new REQs, Bucket 2a)#1783
rubenvdlinde wants to merge 1 commit into
developmentfrom
retrofit/rspec-data-import-export-2026-05-24

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Summary

Ghost change retrofit-2026-05-24-data-import-export extends the data-import-export capability with 5 new REQs reverse-engineered from observed code. 10 @spec annotations point methods back to the change's tasks.md. Docblock-only; no runtime behaviour changes.

  • REQ-018 — Import templates downloadable as empty header-only files per schema (ExportService::buildTemplateSpreadsheet / buildTemplateCsv)
  • REQ-019 — Per-user personal data export endpoint, GDPR Art. 20 (UserController::exportData, UserService::exportPersonalData, ExportSection.vue::exportData)
  • REQ-020 — Frontend file-type sniffing routes uploads to the correct importer by extension (ImportRegister.vue::getFileExtension)
  • REQ-021 — Configuration import-from-source pre-flight checks API token availability (ImportConfiguration.vue::checkTokenAvailability)
  • REQ-022 — Import/export modals reset all form state on close, plus ImportService::clearCaches resets cross-import schema-properties cache (4 closeModal Vue methods + ImportService::clearCaches)

Observed drifts (flagged in spec Notes)

  • Canonical spec's "NOT implemented" list still includes "Import template generation" — the header-only path IS implemented (REQ-018). Example-row + instructies documentation sheet remain unimplemented.
  • UserService::exportPersonalData returns 'objects' => [] placeholder — owned objects aren't yet enumerated in the GDPR export envelope.
  • checkTokenAvailability cannot distinguish revoked from configured tokens (only checks non-empty masked value) — failures only surface on actual search calls.
  • ImportService::clearCaches only resets \$schemaPropertiesCache; other internal caches (validation results) are not currently cleared by this method.

Coverage

  • Batch: `/tmp/or-scan/rspec-cluster-data-import-export.json` (58 methods, 9 files)
  • Kept: 8 methods → 5 REQs
  • Triaged drops: 50 methods (recorded in batch JSON, not re-specified)
  • Deferred: 0
  • Mode: `--extend` (capability `data-import-export` already exists with 17 REQs)

Validation

`openspec validate --changes retrofit-2026-05-24-data-import-export --strict` → pass

Test plan

  • OpenSpec strict validation passes
  • Reviewer confirms REQ titles match observed code behaviour
  • Reviewer confirms triaged drops are correctly excluded

Ghost change retrofit-2026-05-24-data-import-export extends the
data-import-export capability with 5 new REQs covering observed
behaviour of 8 kept methods across 7 files (50 batch methods were
pre-triaged as drops). 10 @SPEC annotations point back to the ghost
change's tasks.md.

- REQ-018: Import templates downloadable as empty header-only files
  per schema (ExportService::buildTemplateSpreadsheet/buildTemplateCsv)
- REQ-019: Per-user personal data export endpoint, GDPR Art. 20
  (UserController::exportData, UserService::exportPersonalData,
   ExportSection.vue::exportData)
- REQ-020: Frontend file-type sniffing routes uploads to the correct
  importer by extension (ImportRegister.vue::getFileExtension)
- REQ-021: Configuration import-from-source pre-flight checks API
  token availability (ImportConfiguration.vue::checkTokenAvailability)
- REQ-022: Import/export modals reset all form state on close, plus
  ImportService::clearCaches resets schema-properties cache between
  imports (4 closeModal Vue methods + ImportService::clearCaches)

Notes drifts:
- Canonical spec's "NOT implemented" list still includes "Import
  template generation" — header-only path IS implemented (REQ-018);
  example-row / instructies-sheet variant remains unimplemented.
- UserService::exportPersonalData returns 'objects' => [] placeholder.
- checkTokenAvailability cannot distinguish revoked from configured
  tokens (only checks non-empty masked value).
- ImportService::clearCaches only resets schemaPropertiesCache; other
  internal caches (validation results) are not currently cleared.

Source: /tmp/or-scan/rspec-cluster-data-import-export.json — Bucket 2a
(extend). No runtime behaviour changes (docblock-only).
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/openregister @ 061f09b

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
composer ✅ 162/162
npm ✅ 532/532
PHPUnit ⏭️
Newman ⏭️
Playwright ⏭️

Quality workflow — 2026-05-24 19:12 UTC

Download the full PDF report from the workflow artifacts.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant