Skip to content

Release v4.20.0

Choose a tag to compare

@github-actions github-actions released this 26 Sep 16:15
881f09b

Added

  • Stage renders more of the executable model onto Cratis now that the upstream fixes are released:
    • projection literal mappings in from blocks, using only literals Chronicle's fluent value expression can carry exactly;
    • removing a child through a join;
    • $context.occurred on produced events, with one timestamp for the payload and the event's occurrence;
    • contract and production tags that aren’t duplicated. This is part of #117.
  • Validation rules and command requirements with warning or information severity reject the command, using Arc's [BlockOnValidationSeverity]. (#116)
  • Specifications for protected queries run through Arc's query pipeline, including denials. They are admitted only when every seeded event comes from the queried key.
  • The semantic runtime rebuilds its state from stored events on restart through Screenplay's EstablishWorld. It refuses to start on a history it can't reproduce.

Changed

  • Stage targets Chronicle 19.8.1, Arc 22.25.0 and Screenplay 4.41.1. Generated applications and the Host image use the same versions, and CI checks the Chronicle projection oracle against v19.8.1.
  • The semantic engine no longer registers Chronicle projection mirrors, so its read models no longer appear as projection views in the Workbench. The admission endpoint no longer reports projectionMirror. The default engine is unchanged.
  • Specifications that assert a value derived from $context.occurred are rejected, because the generated handler uses the actual time.

Still rejected

These are still rejected, each with its STAGE diagnostic:

  • composite-key read models, which need Cratis/Chronicle#4265;
  • FromAll, which needs Cratis/Chronicle#4266;
  • literals in every/all blocks;
  • the projection shapes tracked in Chronicle #4125 and #4166;
  • role-only policies (Arc #2761);
  • per-run projection specifications (#15);
  • given read models (#14).

Also part of #57, #23 and #15.