allthingssecurity commented on PR #28539:
URL: https://github.com/apache/camel/pull/28539#issuecomment-6438161202

   @davsclaus thank you. All points are in 3a89405dddf1, one commit on top of 
7f395d612a.
   
   **Target → hooks.** A new subsection, "Target and hooks", with a table, in 
the shape you suggested:
   `endpoint=` and `component=` match the sends to the endpoint and the polls 
of its consumer, `route=` matches the
   route entry and the lifecycle, and `step=` matches the steps. A rule fires 
at every hook of its target that offers its
   fault. An optional `at=send|poll|entry|step` narrows it to one hook. A rule 
is rejected when it is added, with an error
   that names the hooks of the target, if its `at` is not a hook of the target, 
or if no hook of the target (after `at`)
   offers its fault. Your three examples:
   - `endpoint=file:inbox* drop` or `error` fires at both the poll and the 
send, unless `at=poll` or `at=send` narrows
     it. With `corrupt` it fires at the sends only, as a poll does not offer 
`corrupt`.
   - `route=orders error` and `route=orders delay` are rejected. Route entry 
offers only `corrupt`. `route=` does not
     reach the sends and steps of the route; you target those with `endpoint=`, 
`component=` or `step=`. Each hook has
     one kind of target, so a rule and its counts in the report belong to one 
kind of place.
   - `component=kafka` matches the sends and the polls (a Kafka consumer does 
not poll on a schedule, so in practice the
     sends). It does not match route entry, which is `route=`.
   
   The CLI examples are valid under the rule. One of them now shows `at=poll`.
   
   **Seed.** The goal now reads "a seed fixes the random draws of the rules; 
the same report again needs a DST world". The Time
   section says that in real time with concurrent consumers, the threads decide 
which exchange gets which draw. A DST world sets
   `camel.chaos.seed` to `Dst.seed()` (from `@DstTest`, `@DstSeed` or 
`-Ddst.seed`), or to a value of its own. camel-chaos
   does not depend on camel-test-dst.
   
   **Expectation still running.** An expectation is decided in two cases: when 
its count is reached (met), or when
   `within` has elapsed without it (unmet, FAIL). Before that it is "pending", 
with the count so far and the time left,
   and the verdict stays PASS. It also stays pending when the context stops 
first (`reportOnShutdown`) or the rule is
   removed first. A tool must treat pending as not yet decided.
   
   **CLI shape.** Flat, to match `camel cmd` today: `camel cmd chaos-add`, 
`chaos-change`, `chaos-remove` and
   `chaos-clear`. The reads go under `camel get chaos`, which lists the rules, 
or shows the report with `--report`. Each
   command takes the integration name or pid first. `chaos-add` and 
`chaos-change` must match exactly one integration,
   as `camel cmd sql` does (`findOne`). The others may omit it and then act on 
all, as `stop-route` does (`name = "*"`).
   The examples include `myapp`. Rules get an id when they are added, and 
change and remove take that id.
   
   **Nits.**
   - CLI and MCP are now the same six operations, `clear` included.
   - The step hook row's Hook column is "Inside the error handler of the step 
(CAMEL-26338)". The note about the
     `disable-processor` check moved to the Faults column. The Summary names 
CAMEL-26338.
   - "...does nothing, unless `camel.chaos.enabled=true` is left there too."
   
   Please confirm two decisions: `route=` does not cover the sends and steps of 
its route, and `chaos-add`/`chaos-change`
   require the integration name. A filter such as "the sends of route X" can 
come later if anyone needs it.
   
   The doc is now about 27 KB.
   
   _Claude Code on behalf of allthingssecurity_
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to