[types] Serialize checkpoint fingerprint as OpenAPI format uint64 - #6850
Conversation
fda's REST client generates the CheckpointMetadata.fingerprint field as i64 from the OpenAPI schema, so a checkpoint whose 64-bit fingerprint has the high bit set breaks `fda pipelines`/`fda status` for the whole instance (#6841). Annotate the field with `#[schema(format = "uint64")]` so progenitor/typify generate `u64` instead, which accepts the full unsigned range without truncating or otherwise altering the fingerprint value. Signed-off-by: Ben Pfaff <blp@feldera.com>
|
This PR is a simpler alternative to #6844 |
gz
left a comment
There was a problem hiding this comment.
is this used by the webconsole? it should probably use bigint or similar types to parse this as opposed to javascript integers (alternatively maybe the best type for this is a string)
In the previous iteration you didn't like that I was making it usable for JavaScript. Which do you want? |
|
sorry, this seems elegant I just mention it because I dont understand the impact of webconsole for this change ... but all things considered it's not like it would've worked before as an i64 for webconsole so this seems safe to merge? |
I guess the webconsole didn't look at this, since otherwise there would have been a problem. Maybe someday it will, and then we can fix it for the webconsole too I guess (by limiting the range or transitioning to a string or whatever)? I'm OK with that. |
fda's REST client generates the CheckpointMetadata.fingerprint field as i64 from the OpenAPI schema, so a checkpoint whose 64-bit fingerprint has the high bit set breaks
fda pipelines/fda statusfor the whole instance (#6841). Annotate the field with#[schema(format = "uint64")]so progenitor/typify generateu64instead, which accepts the full unsigned range without truncating or otherwise altering the fingerprint value.Describe Manual Test Plan
Unit tests only.
Checklist