Repository navigation
Description
Description
A partial jobs/update request that omits name nevertheless replaces the current name with the JobSettings default.
Reproduced on MiniLake 1.9.0, commit fe8837dcfac9df621dfabc440abc07ebb4cdbcbb, using the repository's Docker test image, a real HTTP server, and fresh disposable state. Image Python sources were verified byte-for-byte against this commit. No mocks or production data were used.
Affected Components
Steps to Reproduce
Use a disposable instance and data directory. Paths below are relative to its HTTP base URL; bodies are JSON unless explicitly described as raw bytes. IDs shown as W/J/R/Q/C/HANDLE are replaced with the IDs returned by prior calls.
- POST
/api/2.2/jobs/createwith{"name":"valuable name"}; capture J. - POST
/api/2.2/jobs/updatewith{"job_id":J,"new_settings":{"tags":{"team":"qa"}}}. - GET
/api/2.2/jobs/get?job_id=J.
Expected Behavior
Tags change; name stays valuable name.
Actual Behavior
The request succeeds, but settings.name becomes Untitled.
Root Cause Analysis
JobSettings.name defaults to Untitled. update_job uses model_dump(exclude_none=True), which includes defaults for omitted fields, and merges that into the stored settings.
Impact
Unrelated partial edits unexpectedly rename jobs and introduce metadata drift in SDK/Terraform workflows.
Severity is assessed within MiniLake's documented local development/CI use; it does not assume a shared production Databricks deployment.
Suggested Fix
Use exclude_unset=True (and deliberate null semantics) for partial updates; preserve defaults for create/reset only.
Test Coverage Gaps
Jobs tests cover create/get and broader updates but not an update omitting name. Add tag-only, timeout-only and empty new_settings requests.
Severity
Low
Confidence
High — reproduced through the real HTTP API and traced to the source paths above.
Recommended Labels
bug
Existing Issue Matches
No reasonable duplicate found. Reviewed all open and closed issues and open pull requests in dmux/minilake, then searched component/function/symptom terms for this finding. The only open PR at review time, #29, changes the virtualenv lock entry and does not address this defect. The documented intentional limitations were checked before reporting.
Activity