Skip to content

[OpenSpec] [planix] register-schemas #2

@WilcoLouwerse

Description

@WilcoLouwerse

Replace the placeholder example schema in planix_register.json with 5 production-ready schemas (task, project, column, timeEntry, label) that fully encode the Planix data model. Add seed data per ADR-016 so fresh installs start with a working demo environment.

Specs

  • register-schemas — defines and registers the complete Planix data model in OpenRegister

Tasks

Schema Definitions

  • 1. Define task schema in planix_register.json
    • All properties from design.md included (title, description, status, priority, project, etc.)
    • required: ["title", "status"]
  • 2. Define project schema in planix_register.json
    • All properties included (title, description, status, color, icon, members, etc.)
    • required: ["title", "status"]
  • 3. Define column schema in planix_register.json
    • All properties included (title, project, order, wipLimit, color, type)
    • required: ["title", "project", "order"]
  • 4. Define timeEntry schema in planix_register.json
    • All properties included (task, user, duration, date, description)
    • required: ["task", "user", "duration", "date"]
  • 5. Define label schema in planix_register.json
    • All properties included (title, color, description)
    • required: ["title", "color"]

Seed Data

  • 6. Add seed data — Labels (5 objects)
    • Bug, Feature, Docs, Design, Infrastructure labels with correct colors
  • 7. Add seed data — Projects (3 objects)
    • client-portal-v2, infrastructure-migration, onboarding-automation
  • 8. Add seed data — Columns (12 objects — 4 per project)
    • To Do, In Progress, Review, Done per project with correct WIP limits
  • 9. Add seed data — Tasks (5 objects)
    • fix-login-redirect, design-dashboard-widgets, write-api-docs, k8s-namespace-setup, onboarding-n8n-workflow
  • 10. Add seed data — Time Entries (3 objects)
    • Two entries for fix-login-redirect, one for k8s-namespace-setup

Integration

  • 11. Bump register version from 0.1.0 to 0.2.0
    • Update info.version in planix_register.json
    • Update SettingsService.php if it holds a version constant
  • 12. Remove example schema reference from DeepLinkRegistrationListener
    • Remove or replace all references to slug "example"

Verification

  • 13. Verify import in local dev environment
    • All 5 schemas present in planix register
    • All seed objects created
    • Register version matches 0.2.0
  • 14. Verify idempotency — re-import does not create duplicates
  • 15. Verify schema validation
    • POST without title returns 400
    • POST with invalid status enum returns 400
  • 16. Run composer check:strict
    • All PHPCS, PHPMD, Psalm, PHPStan checks pass

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions