jerryshao opened a new issue, #12676:
URL: https://github.com/apache/gravitino/issues/12676
### Describe the subtask
`JobManager.runJob` resolves a `JobTemplateEntity`'s placeholders (e.g.
`{{input_path}}`) against the caller's config and downloads any URI-referenced
files, producing the actual `JobTemplate` that gets submitted to the
`JobExecutor` (`createRuntimeJobTemplate`, `JobManager.java:747-845`). That
resolved object is discarded immediately after submission — callers can see the
*original* template but have no way to see what was *actually run* for a given
job (the resolved executable path, arguments, environment variables, etc.).
**Proposed change:**
- Capture the resolved `JobTemplate` at `runJob` time and persist it as a
nullable `runtime_job_template` column on `job_run_meta` (self-contained JSON
snapshot via `JobTemplateDTO`, following the same precedent as
`JobTemplatePO.jobTemplateContent`).
- Expose it end-to-end: `JobHandle.runtimeJobTemplate()` (Java + Python,
default method returning `null`/throwing for existing implementers), the REST
`Job` payload (`docs/open-api/jobs.yaml`), and the job event-listener API
(`JobInfo`).
- Follows the same cross-cutting pattern as commit `62c5a2f2b` ("Expose job
queuedAt and startedAt across the public surface"), which touched the identical
set of layers for a different new field.
### Parent issue
#12667
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]