Skip to content

feat(client): add action_output contract output type #331

Description

@Seb-MIGUEL

Description

The OpenAEV platform enum `io.openaev.database.model.ContractOutputType` already has an `ActionOutput` value (wire label `action_output`, see `ActionOutputOutputProcessor`), used to store raw injector stdout as a finding with `isFindingCompatible=false` — i.e. usable as a chaining/event filter without showing up as a visible finding.

`pyoaev.contracts.contract_config.ContractOutputType` does not expose this value, so injectors written with `client-python` (e.g. netexec) cannot declare a contract output of this type.

Motivation

Follow-up from investigating why the netexec injector's contracts (declared `text` output) never produce findings: netexec has no dispatcher/extractor turning its raw stdout into a `text` finding, and `text` findings would pollute the Findings tab anyway. The intended fix is to route netexec's stdout through the new `action_output` type instead, with `isFindingCompatible=false`, so it stays usable as an event/condition filter without becoming a visible finding.

Proposed change

Add `ActionOutput: str = "action_output"` to `ContractOutputType` in `pyoaev/contracts/contract_config.py`, matching the platform enum exactly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureType: new feature or capability (feat:).solvedResolved (should be linked to the solving PR).

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions