The Core worker wiring, plugin-job service and SDK are implemented and tested locally in development work that is not yet included in the published main branch. They are not yet deployed to the production platform. The plugin service requires the host’s authentication, live authorization and isolated runtime-dispatch ports; it does not supply the unfinished production plugin installer.
Declare job capabilities
Declare thejobs service and use only the capabilities needed by each action:
Plugin API
The backend-only SDK export is@webdock/plugin-sdk/server:
POST /v1/plugin/jobs, GET /v1/plugin/jobs/:id and DELETE /v1/plugin/jobs/:id. The host authenticates every call and supplies plugin/customer/project scope; these identifiers cannot be supplied in the request body. Status reads and cancellation also check ownership.
Only manifest-declared, currently granted jobs can run. Authority is checked before dispatch and periodically during execution. Disabled/revoked grants and cancellation abort execution. Cancellation cannot undo effects already committed; handlers must be idempotent because delivery is at least once.
Identical retries retain the same job ID within the plugin/customer/project scope. Reusing a key with changed input fails with a conflict. Completed jobs and cancellation tombstones are retained so retries do not silently recreate work. An operator retention/quota policy is required before exposing this service to production authors. Raw handler errors are not returned in status responses.
First test extension
spitzli/webdock-extension-job-demo is a private, independent backend example. Its action enqueuesdemo.process; the worker invokes the plugin in a separate process over HTTP. The handler returns an uppercase message and its SHA-256. No job executes uploaded plugin code inside the Core process.
The initial CLI supports:
build compiles the generated TypeScript; the Dockerfile is supplied for a separate image build. pack writes identical dist/tabularium.json and dist/job-demo-universal.json, with a checksum lock. It does not publish, install or verify remote image availability. CLI/SDK npm publication, fullstack templates and dev/publish/install commands are not available yet; use locally packed packages.
From the Webdock checkout, run the reproducible test: