Skip to content

fix: edit compound source matches and order the receiver's rule blocks - #601

Merged
catinspace-au merged 2 commits into
mainfrom
fix/source-editor-rules
Oct 25, 2026
Merged

catinspace-au merged 2 commits into
mainfrom
fix/source-editor-rules

Conversation

@catinspace-au

@catinspace-au catinspace-au commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

The console side of the 2.2.1 rules work. dfe-engine v1.22.68 can store a source match as a tree of conditions or a CEL Fast expression, order the receiver's rule blocks and bind compatibility profiles. The console could do none of it until now.

Kay, the layout calls are all open to change.

  • Source form: Match by Conditions or CEL Fast expression. Conditions group as all, any, none or not all, each can be negated, and groups nest up to the engine's limit of 4. A single condition opens and saves as the same three fields it always had.
  • A refused rule (422 invalid_rule) is marked in place. The expression box shows the engine's reason and the span it stopped at, and the foot of the form points there instead of repeating it.
  • Sample Events shows the engine's own message for a grouped, negated or CEL match it cannot preview yet.
  • New Sources > Ingest rules page. Each field's blocks reorder by arrow keys on the handle, move buttons, a position menu or drag and drop, with every move announced. Save sends If-Match. A list that changed under the page (409), someone else's save (412) and a missing revision (428) each say what happened and offer Reload.
  • Compatibility: the deployment's profiles on the Ingest rules page, and a source can bind its own and name aliases. Alias fields only show for a profile the source binds.
  • Dashboards opens on a usage strip: cores deployed, worker-node cores, data ingested and events per second at their highest in the last 7 days, a tile the caller may not read says so, and Open Overview goes to the HyperDX Overview dashboard.
  • e2e: ingestRules.spec.ts creates a compound and a CEL source, reorders, forces a 409 and opens the strip. It ran green twice against a local dfe-docker single-kafka stack on engine v1.22.69, without the e2e helpers.

Screenshots from the headless review (taken locally, not attached):

  • 01-form-single, 02-form-nested, 03-form-nested-validation, 06b-form-narrow-nested
  • 04-form-expression-refused, 05-form-compat-own
  • 07-view-config-group, 08-view-samples-group, 09-view-config-cel
  • 10-ingest-rules, 11-ingest-rules-dirty, 12-ingest-rules-409, 13-ingest-rules-menu, 14-ingest-rules-dark
  • 15-dashboards, 16-dashboards-strip, 17-dashboards-narrow, 18-open-overview

Done when the three surfaces pass UX review and the unit and e2e runs are green on this branch.

Taken from dfe-engine v1.22.69. It adds the match all, any and negate members, the CEL Fast when, the ingest rules and compatibility endpoints and the usage overview, with types regenerated.
The source form now builds a match from grouped conditions, all, any, none or not all, nested up to the engine's limit of 4, or takes one CEL Fast expression as when. A refused rule comes back marked where the engine stopped, and a single condition still opens and saves as the same three fields.

A new Ingest rules page orders each field's rule blocks by keyboard, move buttons, a position menu or drag and drop. A save sends the order with the revision it was read at, and a list that changed under it is explained and reloaded. The same page binds the deployment's compatibility profiles, and a source can bind its own and name aliases.

The dashboards page opens on a usage strip with each licensed metric at its highest in the last 7 days, and a tile the caller may not read says so.
@catinspace-au
catinspace-au merged commit ee94ac7 into main Oct 25, 2026
17 checks passed
@catinspace-au
catinspace-au deleted the fix/source-editor-rules branch October 25, 2026 08:16
@github-actions

Copy link
Copy Markdown
Contributor

Released in v1.7.31 -- https://github.com/hyperi-io/dfe-ui/releases/tag/v1.7.31

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants