[ 
https://issues.apache.org/jira/browse/CAMEL-26436?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Work on CAMEL-26436 started by shashank.
----------------------------------------
> camel-chaos - control a running application from the Camel CLI: a chaos dev 
> console, camel cmd chaos-*, camel get chaos
> -----------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-26436
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26436
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-cli-connector, camel-jbang
>            Reporter: shashank
>            Assignee: shashank
>            Priority: Major
>
> Next stage of CAMEL-26330 (design/chaos.adoc, section "Control", step 3 of 
> "Order of work"), after CAMEL-26330 (apache/camel#28716) and CAMEL-26418 
> (apache/camel#28754) put {{components/camel-chaos}} on main. So far rules can 
> only be added with {{camel.chaos.rules}} at startup or from Java 
> ({{ChaosManager}}); the design adds them to a running application from the 
> Camel CLI.
> *Proposal*
> * A {{chaos}} dev console in camel-chaos, read only ({{@DevConsole}}, 
> {{isReadOnly()}} true): the current rules (id, version, state, matches, 
> faults, end), the report (verdict, final, seed, all versions of every rule, 
> counts per route), or why chaos is off. It has no option that adds, changes 
> or removes a rule: {{/q/dev/*}} passes any query parameter as an option, so 
> over HTTP chaos only lists and reports.
> * A {{chaos}} action in the CLI connector ({{LocalCliConnector}}): add, 
> change, remove and clear through {{ChaosManager}}, with the same parser as 
> {{camel.chaos.rules}}; a rule that is not valid is refused with the reason, 
> an id that does not exist (change or remove) is "not found". It works only 
> when chaos is switched on (profile {{dev}} or {{camel.chaos.enabled=true}}, 
> never profile {{prod}}): the action never creates a {{ChaosManager}}, so it 
> cannot switch chaos on. camel-cli-connector does not depend on camel-chaos 
> (with {{camel run}} the JAR comes in the class loader of the integration), so 
> the manager is found by class name and called by reflection. The status of 
> the CLI connector carries the console, for {{camel get chaos}}.
> * camel-jbang: {{camel cmd chaos-add|chaos-change|chaos-remove|chaos-clear}} 
> (flat verb-noun commands like {{stop-route}}; add, change and remove need the 
> name or pid of exactly one integration, as {{camel cmd sql}}, since rule ids 
> are per integration; clear acts without one on all integrations that have 
> chaos switched on), {{camel get chaos [--report] [--json]}}, and {{camel run 
> --chaos}} (adds {{camel:chaos}}, as {{--observe}} adds 
> observability-services; also with {{--runtime=main}} and for a Maven project; 
> refused with Spring Boot and Quarkus for now, as the run would have to add 
> camel-chaos to the exported project and give it Camel profile {{dev}}), with 
> help text and the generated command docs.
> * Docs: the chaos page gets "Control while it runs"; the security model lists 
> the chaos rules as a development opt-in and says that {{exception=}} can name 
> any public {{Throwable}} class on the classpath; {{design/chaos.adoc}} 
> catches up with what #28716 and #28754 built (poll strategy wrapped once, 
> counting in the route policy, netty-http {{status=}} in CAMEL-26432), as 
> asked in the review of #28754.
> The MCP tool group ({{camel_runtime_chaos_*}}, with {{destructiveHint=true}} 
> on add and change and both in {{ToolConfirms}}, as agreed in the review of 
> #28716) is the next step (design "Order of work", the MCP tool group), in its 
> own pull request. Until then {{camel ask}} reaches the commands only through 
> its {{camel}} command tool, which asks the user before {{camel cmd chaos-*}} 
> (a {{camel cmd}} changes something).
> _Filed with Claude Code on behalf of allthingssecurity._



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to