Commit d243a9a42afb39bf47a80ef440569087c683e185

Authored by zichun
1 parent 89f47a38

docs(progress): pin P1.8 JasperReports commit ref + Phase 1 platform row is now complete

Showing 1 changed file with 5 additions and 5 deletions
PROGRESS.md
... ... @@ -10,11 +10,11 @@
10 10  
11 11 | | |
12 12 |---|---|
13   -| **Latest version** | v0.26.0 (quality→warehousing auto-quarantine + plug-in JobHandler registration) |
14   -| **Latest commit** | `1a45a4b feat(jobs+plugins): plug-in loader JobHandler registration + reference PlateCleanupJobHandler` |
  13 +| **Latest version** | v0.27.0 (P1.8 — JasperReports integration; **all Phase 1 platform units done**) |
  14 +| **Latest commit** | `89f47a3 feat(reports): P1.8 — JasperReports integration + built-in ping report` |
15 15 | **Repo** | https://github.com/reporkey/vibe-erp |
16   -| **Modules** | 23 |
17   -| **Unit tests** | 334, all green |
  16 +| **Modules** | 24 |
  17 +| **Unit tests** | 337, all green |
18 18 | **Real PBCs implemented** | **10 of 10** (pbc-identity, pbc-catalog, pbc-partners, pbc-inventory, pbc-warehousing, pbc-orders-sales, pbc-orders-purchase, pbc-finance, pbc-production, pbc-quality) — P5.x row of the implementation plan complete at minimal v1 scope |
19 19 | **End-to-end smoke runs** | An SO confirmed with 2 lines auto-spawns 2 draft work orders via `SalesOrderConfirmedSubscriber`; completing one credits the finished-good stock via `PRODUCTION_RECEIPT`, cancelling the other flips its status, and a manual WO can still be created with no source SO. All in one run: 6 outbox rows DISPATCHED across `orders_sales.SalesOrder` and `production.WorkOrder` topics; pbc-finance still writes its AR row for the underlying SO; the `inventory__stock_movement` ledger carries the production receipt tagged `WO:<code>`. First PBC that REACTS to another PBC's events by creating new business state (not just derived reporting state). |
20 20 | **Plug-ins serving HTTP** | 1 (reference printing-shop, 7 endpoints + own DB schema + own metadata + own i18n bundles) |
... ... @@ -43,7 +43,7 @@ That target breaks down into roughly 30 work units across 8 phases. About **22 a
43 43 | P1.5 | Metadata store seeding | ✅ DONE — `1ead32d` |
44 44 | P1.6 | ICU4J `Translator` implementation + locale resolution | ✅ DONE — `01c71a6` |
45 45 | P1.7 | Event bus + transactional outbox | ✅ DONE — `c2f2314` |
46   -| P1.8 | JasperReports integration | 🔜 Pending |
  46 +| P1.8 | JasperReports integration | ✅ DONE — `89f47a3` — new `platform-reports` module with JasperReports 6.21.3; api.v1 `ReportRenderer` + `ReportRenderException`; `JasperReportRenderer` @Component running JDK javac via `JRJavacCompiler`; `PluginContext.reports` wired with default-throw; `/api/v1/reports/ping` + `/api/v1/reports/render` endpoints; built-in `vibeerp-ping-report.jrxml` self-test |
47 47 | P1.9 | File store (local + S3) | ✅ Partial — `f2156c5` — api.v1 `FileStorage` + `FileHandle` + `FileReadResult`; new `platform-files` subproject with `LocalDiskFileStorage` (sidecar metadata files, atomic `put`, path-traversal guards); `PluginContext.files` with default-throw; `FileController` with multipart upload/download/list/delete. S3 backend still pending. |
48 48 | P1.10 | Job scheduler (Quartz) | ✅ DONE — `5d6a2f1` — new `platform-jobs` module with Quartz Spring Boot starter + JDBC job store against host Postgres; api.v1 `JobHandler`/`JobScheduler`/`JobContext`; owner-tagged `JobHandlerRegistry` parallel to `TaskHandlerRegistry`; `QuartzJobBridge` routes by key; `PrincipalContext.runAs("system:jobs:<key>")` wraps every execution; HTTP surface at `/api/v1/jobs/**` (list/trigger/schedule/unschedule); built-in `vibeerp.jobs.ping` diagnostic handler |
49 49  
... ...