DPPS Action Items Checklist
Owner: Development Team
Target: 2-week Sprint
Status: Ready to Execute
π Phase 0: Pre-Implementation (30 min)β
- Review PRD v1.0 β Stakeholder sign-off
- Review Implementation Plan β
DPPS_IMPLEMENTATION_PLAN.md - Review Quick Start β
DPPS_QUICK_START.md - Review Summary β
DPPS_SUMMARY.md - Create Sprint Board β Jira/GitHub Issues
- Set up Grafana dashboards β Empty templates ready
π§ Day 1: OpenAPI Schema & Model Regenerationβ
Task 1.1: Enhance Product Schema (30 min)β
- Open
valkyrai/src/main/resources/openapi/api.hbs.yaml - Add
contentDataId,deliveryMode,maxDownloads,expiresAfterDaysto Product schema - Reference:
DPPS_OPENAPI_ADDITIONS.md - Commit changes:
git commit -m "feat: add DPPS fields to Product schema"
Task 1.2: Regenerate ThorAPI Models (15 min)β
-
cd thorapi && mvn clean install - Verify no build errors
- Check generated files:
grep "contentDataId" valkyrai/generated/spring/src/main/java/com/valkyrlabs/model/Product.java
Task 1.3: Rebuild ValkyrAI (15 min)β
-
cd valkyrai && mvn clean install -DskipTests - Verify Product service compiles with new fields
- Commit generated files:
git commit -m "chore: regenerate ThorAPI models for DPPS"
Task 1.4: Implement DppsOrchestrationService (2 hours)β
- Create
valkyrai/src/main/java/com/valkyrlabs/valkyrai/service/DppsOrchestrationService.java - Copy implementation from
DPPS_IMPLEMENTATION_PLAN.mdPhase 2.2 - Implement
createProductFromUpload() - Implement
publishProduct() - Add Spring
@Serviceannotation - Add Javadoc comments
- Commit:
git commit -m "feat: add DPPS orchestration service"
Task 1.5: Unit Tests for Orchestration Service (1 hour)β
- Create
valkyrai/src/test/java/com/valkyrlabs/valkyrai/service/DppsOrchestrationServiceTest.java - Test
createProductFromUpload()with mock FileRecord - Test
publishProduct()with mock Product - Test ACL permission grants
- Run tests:
mvn test -Dtest=DppsOrchestrationServiceTest - Commit:
git commit -m "test: add unit tests for DPPS orchestration"
Day 1 Total: ~4 hours
End of Day 1 Deliverable: Working backend service for product creation from uploads
π§ Day 2: Workflow & Fulfillmentβ
Task 2.1: Implement DppsPurchaseFulfillmentWorkflow (2 hours)β
- Create
valkyrai/src/main/java/com/valkyrlabs/workflow/definitions/DppsPurchaseFulfillmentWorkflow.java - Copy implementation from
DPPS_IMPLEMENTATION_PLAN.mdPhase 2.3 - Register workflow in
@PostConstruct - Define tasks: VerifyPayment β GrantAccess β NotifyBuyer β PostPurchase
- Add
@Componentannotation - Commit:
git commit -m "feat: add DPPS fulfillment workflow"
Task 2.2: Implement DigitalFulfillmentModule (1 hour)β
- Create
valkyrai/src/main/java/com/valkyrlabs/workflow/modules/DigitalFulfillmentModule.java - Copy implementation from
DPPS_IMPLEMENTATION_PLAN.mdPhase 2.4 - Extend
BaseMapIOModule - Add
@Component("digitalFulfillmentModule")+@VModuleAware - Wrap existing
DigitalFulfillmentServicemethods - Commit:
git commit -m "feat: add digital fulfillment ExecModule"
Task 2.3: Implement DownloadController (2 hours)β
- Create
valkyrai/src/main/java/com/valkyrlabs/valkyrai/controller/DownloadController.java - Copy implementation from
DPPS_IMPLEMENTATION_PLAN.mdPhase 2.5 - Implement
GET /v1/download/{downloadAccessId} - Add ACL
@PreAuthorizeannotation - Enforce download limits + expiry
- Generate signed URL via
DigitalFulfillmentService - Commit:
git commit -m "feat: add download controller with signed URLs"
Task 2.4: Integration Test (1.5 hours)β
- Create
valkyrai/src/test/java/com/valkyrlabs/valkyrai/DppsIntegrationTest.java - Test full flow: Upload β Product β Funnel β Mock Payment β Download
- Verify ACL grants applied
- Verify DownloadAccess created
- Run:
mvn test -Dtest=DppsIntegrationTest - Commit:
git commit -m "test: add DPPS integration tests"
Day 2 Total: ~6.5 hours
End of Day 2 Deliverable: Complete backend workflow with download endpoint
π¨ Day 3: Frontend Components (Part 1)β
Task 3.1: Implement FileUploader Component (2 hours)β
- Create
web/typescript/valkyr_labs_com/src/components/dpps/FileUploader.tsx - Copy implementation from
DPPS_IMPLEMENTATION_PLAN.mdPhase 3.1 - Install
react-dropzone:npm install react-dropzone - Wire up
/files/uploads/initand/files/uploads/complete - Add progress bar UI
- Test with 10MB file
- Commit:
git commit -m "feat: add file uploader component"
Task 3.2: Implement ProductForm Component (2 hours)β
- Create
web/typescript/valkyr_labs_com/src/components/dpps/ProductForm.tsx - Copy implementation from
DPPS_IMPLEMENTATION_PLAN.mdPhase 3.2 - Use Formik for validation
- Wire up
useCreateProductMutation() - Pre-fill name from file metadata
- Add field validation (price > 0, maxDownloads > -1)
- Commit:
git commit -m "feat: add product form component"
Day 3 Total: ~4 hours
End of Day 3 Deliverable: Upload + Product creation UI
π¨ Day 4: Frontend Components (Part 2)β
Task 4.1: Implement PublishProduct Component (2 hours)β
- Create
web/typescript/valkyr_labs_com/src/components/dpps/PublishProduct.tsx - Copy implementation from
DPPS_IMPLEMENTATION_PLAN.mdPhase 3.3 - Wire up
useStartFunnelWizardMutation() - Add polling for wizard completion
- Call
publishFunnelendpoint - Display funnel landing page URL
- Commit:
git commit -m "feat: add publish product component"
Task 4.2: Implement DppsWizard Orchestration Page (2 hours)β
- Create
web/typescript/valkyr_labs_com/src/pages/DppsWizard.tsx - Copy implementation from
DPPS_IMPLEMENTATION_PLAN.mdPhase 3.4 - Wire up multi-step flow (Upload β Product β Publish β Complete)
- Add step indicator UI
- Add error handling + retry
- Commit:
git commit -m "feat: add DPPS wizard orchestration page"
Task 4.3: Route Registration (15 min)β
- Add route to
web/typescript/valkyr_labs_com/src/App.tsxor router config - Path:
/dpps/createβ<DppsWizard /> - Add navigation link in main menu
- Commit:
git commit -m "feat: add DPPS wizard route"
Day 4 Total: ~4.25 hours
End of Day 4 Deliverable: Complete frontend wizard UI
π§ͺ Day 5: Integration Testing & Emailβ
Task 5.1: Create Email Template (30 min)β
- Create
valkyrai/src/main/resources/db/migration/V999__dpps_email_templates.sql - Copy SQL from
DPPS_IMPLEMENTATION_PLAN.mdPhase 4.1 - Run migration:
mvn flyway:migrate - Verify template in
email_templatetable - Commit:
git commit -m "feat: add DPPS email template"
Task 5.2: End-to-End Frontend Test (2 hours)β
- Manual test: Upload 50MB file
- Create product with $29.99 price
- Publish funnel
- Verify landing page URL returned
- Check Stripe test mode checkout
- Document any bugs found
Task 5.3: Stripe Test Mode Integration (2 hours)β
- Set
STRIPE_SECRET_KEY=sk_test_... - Trigger mock payment webhook
- Verify Invoice + LineItem created
- Verify DownloadAccess granted
- Verify email sent (Mailtrap)
- Test download link redemption
- Check TTL expiry
Task 5.4: Fix Integration Issues (1.5 hours)β
- Fix any ACL permission errors
- Fix any workflow state persistence issues
- Fix any frontend validation bugs
- Re-run E2E test
- Commit fixes:
git commit -m "fix: resolve DPPS integration issues"
Day 5 Total: ~6 hours
End of Day 5 Deliverable: Working E2E flow with payment integration
π Day 6: Admin Panel & Polishβ
Task 6.1: Admin Orders View (2 hours)β
- Create
web/typescript/valkyr_labs_com/src/pages/admin/DppsOrders.tsx - Use
useGetInvoicesPagedQuery()+useGetLineItemsQuery() - Display table: Order ID, Product, Buyer, Amount, Status, Date
- Add filters: Status, Date range
- Commit:
git commit -m "feat: add admin orders view for DPPS"
Task 6.2: Admin Entitlements View (2 hours)β
- Create
web/typescript/valkyr_labs_com/src/pages/admin/DppsEntitlements.tsx - Use
useGetDownloadAccessesPagedQuery() - Display: Product, Buyer, Download Count, Expiry, Status
- Add "Revoke" button β calls
aclService.revokePermission() - Add "Resend Email" button β triggers email workflow
- Commit:
git commit -m "feat: add admin entitlements view for DPPS"
Task 6.3: Error Handling & UX Polish (1.5 hours)β
- Add user-friendly error messages (not raw exceptions)
- Add loading spinners on mutations
- Add success toast notifications
- Add form validation feedback
- Test all error paths (file too large, payment failed, etc.)
- Commit:
git commit -m "feat: improve DPPS error handling and UX"
Day 6 Total: ~5.5 hours
End of Day 6 Deliverable: Admin tools + polished UX
π Day 7: Metrics, Documentation & Deploymentβ
Task 7.1: Grafana Dashboard Configuration (1 hour)β
- Create dashboard: "DPPS Metrics"
- Add panels:
- Upload success rate
- TTFP histogram
- Checkout conversion rate
- Download link redemption rate
- P95 latency (product creation, download URL generation)
- Save dashboard JSON
- Commit:
git commit -m "feat: add DPPS Grafana dashboard"
Task 7.2: API Documentation (1 hour)β
- Update Swagger/OpenAPI docs with new endpoints
- Add example payloads for
/v1/download/{id} - Document query parameters
- Test in Swagger UI:
http://localhost:8080/swagger-ui.html - Commit:
git commit -m "docs: add DPPS API documentation"
Task 7.3: User Guide & Runbook (1 hour)β
- Create
docs/DPPS_USER_GUIDE.mdfor creators - Create
docs/DPPS_RUNBOOK.mdfor ops team - Document troubleshooting steps
- Document environment variables
- Commit:
git commit -m "docs: add DPPS user guide and runbook"
Task 7.4: Staging Deployment (1.5 hours)β
-
mvn clean package -
make harness-up(or deploy to staging k8s) - Verify environment variables set
- Run smoke test: Upload β Product β Funnel β Payment β Download
- Check logs for errors
- Tag release:
git tag v1.0.0-dpps-beta
Task 7.5: Internal Dogfood (1.5 hours)β
- Create 3 internal test products:
- Ebook (PDF, 5MB)
- Video course (ZIP, 100MB)
- Software license (TXT, 1KB)
- Test each product's full flow
- Measure TTFP for each
- Document any issues in GitHub
Day 7 Total: ~6 hours
End of Day 7 Deliverable: Deployed to staging, 3 test products live
β Final Checklist (Before GA)β
- All PRD acceptance criteria pass
- Security review completed (ACL tests, TTL tests, revocation)
- Performance tests: P95 < 2s
- Observability: Grafana dashboards live
- Documentation: User guide, runbook, API docs
- Runbooks: Support team trained
- 3 internal products successfully purchased and downloaded
- Zero P0/P1 bugs in staging
- Stakeholder sign-off
π Success Metrics (Week 1)β
- TTFP < 60 seconds (median)
- Upload success rate > 95%
- Checkout conversion > 4% (baseline)
- Download link redemption rate 100%
- Zero ACL permission errors in logs
- Support tickets < 1% per 100 orders
π Blockers & Escalationβ
If Blocked:β
- Check Implementation Plan β
DPPS_IMPLEMENTATION_PLAN.md - Check Quick Start β
DPPS_QUICK_START.md - Check Existing Services β
DigitalFulfillmentService.javafor reference - Search Codebase β Semantic search for similar patterns
- Ask Team β Slack #valkyr-dev channel
- Escalate β @john_mcmahon or @platform-arch
π Post-Launch (Week 2+)β
Phase 2 Featuresβ
- Multi-file products (FileZipModule)
- License key generation (LicenseModule)
- Shopify payment bridge (RestApiModule)
- Coupon codes (Discount entity integration)
- Guest checkout (auto-create Principal)
Phase 3 Featuresβ
- Subscription products
- Streaming delivery (HLS/DASH)
- Webhook notifications (Zapier/Make)
- Affiliate tracking
- Analytics dashboard (conversion funnel)
β Definition of Doneβ
- All tasks completed above
- All tests passing (
mvn test) - Code review approved
- Documentation merged
- Deployed to staging
- 3 internal products live
- Metrics tracked in Grafana
- Stakeholder demo completed
Status: Ready to Execute
Estimated Delivery: 2 weeks (40-50 hours)