Files
alla-allaos-fullstack/docs/implementation/task-p.5.1-implementation.md
phaichayon e4573ac0c9 task-p.5.1
2026-06-30 09:21:34 +07:00

6.8 KiB

Task P.5.1 Implementation Report

Scope

This report documents implementation work completed for task-p.5.1.md.

Focus of this round:

  • production hardening for document template management
  • metadata separation path from schemaJson
  • duplicate version workflow
  • stronger template health validation
  • improved compare UX
  • regression-safe migration support
  • test coverage for new hardening helpers

Review Inputs

Reviewed before implementation:


Implementation Summary

1. Metadata separation foundation

Added dedicated metadata_json support for document template versions:

Migration behavior:

  • add metadata_json
  • backfill legacy __templateManagement from schema_json into metadata_json
  • scrub embedded metadata from schema_json

Compatibility helper added in:

This helper now:

  • reads dedicated metadata first
  • falls back to legacy metadata inside schemaJson
  • sanitizes exported schema so PDFMe JSON stays clean

2. Document template server hardening

Updated template server foundation in:

Key changes:

  • sanitize schemaJson on create and update
  • store lifecycle metadata in metadataJson
  • preserve legacy metadata compatibility on read
  • duplicate version support with cloned mappings and table columns
  • stronger validation output with structured health issues
  • compare output expanded with:
    • field/schema changes
    • mapping difference payload
    • validation state for both versions
    • basic JSON diff summary

3. Duplicate-as-draft workflow

Added explicit duplicate action:

Client and mutation support updated in:

Behavior implemented:

  • duplicate any source version into a new draft
  • copy schema JSON
  • copy mappings
  • copy mapping columns
  • clear active lifecycle state
  • generate a unique draft/copy version label

4. Compare UX improvement

Rebuilt comparison dialog in:

Compare UI now shows tabs for:

  • metadata
  • placeholders
  • mappings
  • schema
  • health

This replaces the earlier toast-only compare result.

5. Validation and health output

Extended validation contract in:

New validation output includes:

  • healthStatus
  • structured issues
  • orphanMappings
  • unsupportedSchemaTypes
  • sectionMarkerIssues
  • suggested next step

6. Audit utility relocation

Moved reusable audit helpers into runtime code space:

Script shim now re-exports from:

This removes direct runtime imports from scripts/.

7. Automated tests added

Added focused tests for hardening helpers:

Covered:

  • legacy metadata extraction
  • schema sanitization
  • metadata merge precedence
  • duplicate version label generation

Generated Verification Artifacts

Verification commands updated existing generated outputs:

These were not hand-edited as part of feature logic. They are generated by verification runs.


Known Gaps After This Round

  • Turbopack warning still persists during npm run build, even though runtime no longer imports from scripts/ directly.
  • Full route-level management tests were not added yet.
  • Minimal browser/E2E verification was not added yet.
  • audit:pdf still reports an existing active template schema drift for ALLA product template data in the current database state.

Outcome

P.5.1 significantly improved the production-readiness of the document template management foundation, especially around metadata handling, draft duplication, health reporting, and compare usability, while keeping the PDF runtime path unchanged.