Skip to content

MetaDefender Aether#43893

Merged
kamalq97 merged 47 commits into
demisto:contrib/anikobartos_MetaDefender-Aetherfrom
anikobartos:MetaDefender-Aether
Apr 29, 2026
Merged

MetaDefender Aether#43893
kamalq97 merged 47 commits into
demisto:contrib/anikobartos_MetaDefender-Aetherfrom
anikobartos:MetaDefender-Aether

Conversation

@anikobartos
Copy link
Copy Markdown
Contributor

@anikobartos anikobartos commented Apr 15, 2026

Contributing to Cortex XSOAR Content

Make sure to register your contribution by filling the contribution registration form

The Pull Request will be reviewed only after the contribution registration form is filled.

Status

  • In Progress
  • Ready
  • In Hold - (Reason for hold)

Related Issues

There is no related issue

Description

The new product name is MetaDefender Aether.
(MetaDefender Sandbox → MetaDefender Aether)
Small change: Use the threat-level to determine maliciousness; it’s more reliable than the verdict string.

Must have

  • Tests
  • Documentation

relates: https://jira-dc.paloaltonetworks.com/browse/CIAC-16555

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Apr 15, 2026

CLA assistant check
All committers have signed the CLA.

@content-bot content-bot added Contribution Thank you! Contributions are always welcome! External PR Partner Support Level Indicates that the contribution is for Partner supported pack labels Apr 15, 2026
@content-bot content-bot changed the base branch from master to contrib/anikobartos_MetaDefender-Aether April 15, 2026 11:58
@content-bot content-bot requested a review from kamalq97 April 15, 2026 11:59
@content-bot
Copy link
Copy Markdown
Contributor

Thank you for your contribution. Your generosity and caring are unrivaled! Make sure to register your contribution by filling the Contribution Registration form, so our content wizard @kamalq97 will know the proposed changes are ready to be reviewed.
For your convenience, here is a link to the contributions SLAs document.

@content-bot
Copy link
Copy Markdown
Contributor

Hi @anikobartos, thanks for contributing to the XSOAR marketplace. To receive credit for your generous contribution please follow this link.

@content-bot
Copy link
Copy Markdown
Contributor

🤖 AI-Powered Code Review Available

Hi @kamalq97, you can leverage AI-powered code review to assist with this PR!

Available Commands:

  • @marketplace-ai-reviewer start review - Initiate a full AI code review
  • @marketplace-ai-reviewer re-review - Incremental review for new commits

@anikobartos anikobartos changed the title Meta defender aether MetaDefender Aether Apr 15, 2026
@kamalq97 kamalq97 added ready-for-instance-test In contribution PRs, this label will cause a trigger of a build with a modified pack from the PR. ready-for-ai-review The PR is ready for reviewing the PR with the AI Reviewer. labels Apr 26, 2026
@content-bot
Copy link
Copy Markdown
Contributor

For the Reviewer: Trigger build request has been accepted for this contribution PR.

@content-bot
Copy link
Copy Markdown
Contributor

For the Reviewer: Successfully created a pipeline in GitLab with url: https://gitlab.xdr.pan.local/xdr/cortex-content/content/-/pipelines/8461914

@content-bot content-bot removed the ready-for-instance-test In contribution PRs, this label will cause a trigger of a build with a modified pack from the PR. label Apr 26, 2026
@marketplace-ai-reviewer marketplace-ai-reviewer removed the ready-for-ai-review The PR is ready for reviewing the PR with the AI Reviewer. label Apr 26, 2026
@marketplace-ai-reviewer
Copy link
Copy Markdown
Contributor

🤖 Analysis started. Please wait for results...

@content-bot
Copy link
Copy Markdown
Contributor

Validate summary
The following errors were thrown as a part of this pr: ST111, RM110, BA129, PA114, RN106.
The following errors can be ignored: RM110, BA129.
The following errors cannot be ignored: ST111, PA114, RN106.
If the AG100 validation in the pre-commit GitHub Action fails, the pull request cannot be force-merged.
The following errors don't run as part of the nightly flow and therefore can be force merged: ST111, BA129, PA114, RN106.

Verdict: PR can be force merged from validate perspective? ❌

@marketplace-ai-reviewer
Copy link
Copy Markdown
Contributor

🤖 AI Review Disclaimer

This review was generated by an AI-powered tool and may contain inaccuracies. Please be advised, and we extend our sincere apologies for any inconvenience this may cause.

Copy link
Copy Markdown
Contributor

@marketplace-ai-reviewer marketplace-ai-reviewer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔄 Re-reviewing updates...

Important

To maintain review integrity, threads marked as Resolved without accompanying changes or explanations will be automatically unresolved for further verification.

Hi! Thanks for contributing to the OPSWAT MetaDefender Aether integration. I've left a few notes, primarily regarding the dynamic timeout implementation; using a global variable won't update the @polling_function decorator as intended, and the tests need to verify the actual polling behavior rather than just the variable update. There are also a few minor tweaks needed, such as adding a missing traceback import and using named arguments in the command examples. Let me know if you have any questions!

@kamalq97, @idovandijk, @melamedbn, @anikobartos, @marketplace-ai-reviewer please review and approve the results generated by the AI Reviewer by responding 👍 on this comment.



def scan_command(client: Client, args: dict[str, Any]):
global TIMEOUT
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Modifying a global variable here will not affect the timeout parameter of the @polling_function decorator.

mocker.patch.object(ScheduledCommand, "raise_error_if_not_supported", return_value=None)

MD_Aether.scan_command(client, {"url": "https://example.com", "timeout": "120"})
assert MD_Aether.TIMEOUT == 120
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test verifies the global variable update, but does not test if the polling mechanism actually uses the new timeout.


elif entry_id := args.get("entry_id"):
try:
file_entry = demisto.getFilePath(entry_id)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Explicitly import the traceback module.


@polling_function(
name=demisto.command(),
timeout=TIMEOUT,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using a global variable here does not allow dynamic timeouts.

!metadefender-aether-scan-url url="https://www.google.com" timeout="600"
!metadefender-aether-search-query query=834d1dbfab8330ea5f1844f6e905ed0ac19d1033ee9a9f1122ad2051c56783dc
!metadefender-aether-search-query https://www.google.com limit=3
!metadefender-aether-search-query https://www.google.com page=1 page_size=20 No newline at end of file
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use named arguments instead of positional arguments for clarity. Also, it looks like the trailing newline was removed entirely; please ensure the file ends with a single newline character.

Suggested change
!metadefender-aether-search-query https://www.google.com page=1 page_size=20
!metadefender-aether-search-query query=https://www.google.com page=1 page_size=20

@kamalq97 kamalq97 merged commit f7325bb into demisto:contrib/anikobartos_MetaDefender-Aether Apr 29, 2026
18 checks passed
@content-bot content-bot mentioned this pull request Apr 29, 2026
5 tasks
@github-actions
Copy link
Copy Markdown

Thank you for your contribution. Your external PR has been merged and the changes are now included in an internal PR for further review. The internal PR will be merged to the master branch within 3 business days.

kamalq97 added a commit that referenced this pull request May 5, 2026
* MetaDefender Aether (#43893)

* Add Aether image, pack_metadata, readme

* secret and pack ignore

* Add Aether pack,  refresh test files

* test correction. extension to command_examples

* Deprecate MetaDefender Sandbox

* typos and code clean

* add format

* ruff format

* UP038 correction

* lint and test fix

* new line at the end of readme

* readme format

* format integration Readme

* playbook fix

* add OPSWAT to metadata

* grammar corrections

* test files correction

* grammar corrections

* remove duplication and trailing line

* add package intro to the beginning of the description file

* use contentclient, extend verdict names in search, simplify polling

* move out timeout from polling

* use fastapi

* add more test cases

* fix test and remove global timeout change

* Update .secrets-ignore

---------

Co-authored-by: Aniko Bartos <aniko.bartos@opswat.com>
Co-authored-by: Kamal Qarain <45042524+kamalq97@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Contribution Form Filled Whether contribution form filled or not. Contribution Thank you! Contributions are always welcome! docs-approved External PR Partner Support Level Indicates that the contribution is for Partner supported pack Partner Partner-Approved supported-modules-approved

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants