Artifact preprocessing turns a published PDF into text that OpenCrane can search and use. The server saves the work as a workflow β saved work that can wait and continue after a restart β while the controller starts one isolated worker for that exact PDF.
| Package | What it owns |
|---|---|
| controller | The workflow handler that binds one Job and its first Pod before release. |
| k8s-launcher | The fixed, suspended Kubernetes Job manifest for the PDF worker. |
| main | The worker's bounded PDF-to-text conversion and broker protocol. |
| workflows | The shared task declaration and server/controller binding contract. |
server publishes PDF + saves workflow
β
βΌ
controller βββΊ suspended Job βββΊ records Job and Pod IDs βββΊ releases worker
β β
βββββββββββββββββββ task-bound reference βββββ
In this flow: controller Β· Job builder Β· workflow contract Β· server artifact authority.
The controller cannot choose PDF bytes, credentials, a namespace, or a different worker image. The server owns the PDF and the recorded bindings; deployment configuration owns the worker profile.
These packages keep product authority in the server. The controller may use the task contract and Job builder, and the worker may talk only to its server broker. Neither reaches directly into the other's database or Kubernetes client.