Repository navigation
0.80.0
HTTP-bound inputs and short names in generated types, and input-type rules in Entity Runtime.
1 added, 3 fixed.
Changed
ess generate typestakes--http <binding>(and--refines), compiled asess generate --kind openapi --httpcompiles it (#656). Under it each<command>.inputis the request body the bound OpenAPI document publishes, without the fields its route carries in the path, so the Rust, Go and TypeScript types decode that body; a command whose route publishes no body (encodedquery, or every field in the path) has no input root:--root <command>.inputis refused asunpublished_bodynaming the command and why, and--all-commandsleaves it out. Responses and view rows are unchanged, and without--httpevery generated file keeps its bytes.ess generate types --names shortcombines with--all-commandsand--all-views(#409): a command's input or response and a view's row are named by their owner's last segment and the member,demo.notes.Create.inputasCreateInputanddemo.notes.ByOwner.rowasByOwnerRow, where every input shortened toInputand every row toRowand two commands or views were refused asshort_name_collision. Declared type and event short names are unchanged, and two commands of one name in two domains are still refused, naming both.- Entity Runtime lowering no longer drops the
invariants:andprefix:of a command input's type unless every accepting branch stores the input in a field of that type: an update holds them as operation preconditions over$args.input.<field>, lowered as a guard is, so an ordering over aTimestampbecomesbefore/after; a creation, which has no precondition in entity-core, and an ordering over text, which entity-core cannot decide, are refused asInputInvariantUnsupportednaming the input. - A
when:guard on the identity input of a row a branch is sent for, below a non-creatingunknown_instance:or on the subject the branch acts on, is decided on the identity of the row the scenario arranges, a compound guard by its identity parts: the row's creator is steered onto an identity that keeps the branch, and where none does the branch is refused asESS-SYNTH-003naming the guard, where the scenario was sent a row of another identity and the target answered another branch. A related row's boundary run that would create a second row under the identity such a guard steers it onto gives way to the next branch answering there, where the whole scenario was refused asESS-SYNTH-001. A boundary run that sends such an identity input another value, or after adeletes:branch removed the row, is sent a row of that identity, or is refused naming the guard and not sent, where it was sent an identity no row carries and the target answeredunknown(#645, #693).
Every change: CHANGELOG.md § 0.80.0