Skip to content

[CI] Add validation to prevent duplicate package names#18187

Merged
mrodm merged 23 commits intoelastic:mainfrom
mrodm:avoid_duplicated_pkg_names
Apr 8, 2026
Merged

[CI] Add validation to prevent duplicate package names#18187
mrodm merged 23 commits intoelastic:mainfrom
mrodm:avoid_duplicated_pkg_names

Conversation

@mrodm
Copy link
Copy Markdown
Collaborator

@mrodm mrodm commented Apr 1, 2026

Proposed commit message

Add a new dev/packagenames Go package that validates no two packages
share the same name field across the packages/ directory.

WHAT: Introduces a recursive scanner that reads manifest.yml files,
filtering only valid package manifests (those with format_version,
name, type, and version fields, where type is one of
integration, input, or content). All duplicate names are
reported at once with their directory paths. The check runs as part of
mage check. The dev/packagenames folder is also added to the
backport script so it is available on backport branches.

WHY: It is currently possible to define multiple packages with the same
name in their manifest, leading to ambiguity and unexpected behavior
during builds and in the package registry. This validation catches the
problem early in CI.

Author's Checklist

  • Revert the temporary test filter in .buildkite/scripts/common.sh before merging.
  • Revert the temporary debug messages in dev/packagenames/packagenames.go before merging.
  • Remove test packages.
  • Ensure backport_branch.sh includes the required changes to copy the new files.
  • Run backport pipeline in dry run mode and ensure that the new files are copied.
  • Validate that this new check works with elastic-package < v0.118.0
    • Tested locally:
      go get github.com/elastic/elastic-package@v0.109.1
      mage -v check
      # Output:
      # Running dependency: github.com/elastic/integrations/dev/packagenames.Check
      # ELASTIC_PACKAGE_BIN environment variable found, checking for elastic-package binary in CI path
      # elastic-package binary found in ELASTIC_PACKAGE_BIN path: /home/mariorodriguez/Coding/work/integrations/build/elastic-package
      # elastic-package 0.109.1 < 0.118.0, using recursive walk to find packages
      # Error: error validating package names in directory 'packages': found duplicate package names:
      # duplicate package name "elastic_package_registry" found in: packages/elastic_package_registry, packages/other/elastic_package_registry2
  • Validate that this script works without any elastic-package in the PATH:
  • Validate that elastic-package under ${WORKSPACE}/build is used
  • Validate that it can detect duplicated names in nested folders:

How to test this PR locally

# Running mage check in the current working copy should report no errors
mage -v check

# Simulate error:
# To simulate a duplicate, create two packages with the same name field
# in their manifest.yml and run mage check — it should fail with a
# clear error listing both directories.

cp -r packages/elastic_package_registry packages/elastic_package_registry2

# If this new test package is included, then codeowners check should be disabled in mage check
cp -r packages/elastic_package_registry packages/other/elastic_package_registry2

# update .github/CODEOWNERS to add an entry for elastic_package_registry2. Example:
# /packages/elastic_package_registry @elastic/ecosystem
# /packages/elastic_package_registry2 @elastic/ecosystem
# /packages/other/elastic_package_registry2 @elastic/ecosystem

mage -v check

Related issues


Generated with the assistance of Claude

mrodm added 8 commits April 1, 2026 13:11
Add a new Go package dev/packagenames that validates no two packages
share the same name across the packages/ directory. Implements
recursive walk fallback logic, elastic-package find integration
(for versions >= 0.118.0), and duplicate name detection with
actionable error reporting.

Part of elastic#17206.

Generated with Claude (claude-sonnet-4-6)
Add unit tests and testdata fixtures for the packagenames package,
covering: no duplicates at top level, duplicates at top level,
invalid manifests being ignored, and nested packages at both first
and second level with and without duplicates.

Part of elastic#17206.

Generated with Claude (claude-sonnet-4-6)
Extract packageManifest struct, isValid() and readManifest() into a
dedicated manifest.go file for better separation of concerns.

Part of elastic#17206.

Generated with Claude (claude-sonnet-4-6)
Add packagenames.Check to the magefile Check target. Add
elasticPackageBinaryPath to resolve the elastic-package binary from
${WORKSPACE}/build/elastic-package (CI) or PATH (local), falling back
to the recursive walk if the binary is not found.

Part of elastic#17206.

Generated with Claude (claude-sonnet-4-6)
Reorder functions so callers appear before the functions they call:
Check → checkPackageNames → findPackagePaths → elasticPackageBinaryPath
→ elasticPackageFind → walkPackagePaths → checkDuplicateNames.

Part of elastic#17206.

Generated with Claude (claude-sonnet-4-6)
Extract "manifest.yml" to a manifestFileName constant and replace
strings.NewReader(string(stdout)) with bytes.NewReader(stdout) to
avoid an unnecessary byte-to-string conversion.

Part of elastic#17206.

Generated with Claude (claude-sonnet-4-6)
@mrodm mrodm self-assigned this Apr 1, 2026
Comment thread .buildkite/scripts/common.sh Outdated
@andrewkroh
Copy link
Copy Markdown
Member

Did you consider requiring package dir names to match the manifest name? That would naturally force unique names within the repo and help improve consistency and prevent surprises.

@elastic-vault-github-plugin-prod
Copy link
Copy Markdown

elastic-vault-github-plugin-prod bot commented Apr 1, 2026

🚀 Benchmarks report

Package abnormal_security 👍(3) 💚(1) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
ai_security_mailbox_not_analyzed 8474.58 6711.41 -1763.17 (-20.81%) 💔
threat 3597.12 2695.42 -901.7 (-25.07%) 💔

Package agentless_hello_world 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
generic 43478.26 29411.76 -14066.5 (-32.35%) 💔

Package apache 👍(0) 💚(1) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
access 2958.58 2247.19 -711.39 (-24.04%) 💔

Package apache_tomcat 👍(3) 💚(1) 💔(5)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
access 2624.67 1519.76 -1104.91 (-42.1%) 💔
localhost 23809.52 14925.37 -8884.15 (-37.31%) 💔
request 38461.54 23809.52 -14652.02 (-38.1%) 💔
session 21276.6 17543.86 -3732.74 (-17.54%) 💔
thread_pool 9090.91 6944.44 -2146.47 (-23.61%) 💔

Package armis 👍(1) 💚(0) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
device 2083.33 1319.26 -764.07 (-36.68%) 💔
vulnerability 3225.81 2352.94 -872.87 (-27.06%) 💔

Package aws 👍(16) 💚(4) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
route53_resolver_logs 7142.86 6024.1 -1118.76 (-15.66%) 💔
cloudfront_logs 2881.84 2164.5 -717.34 (-24.89%) 💔

Package aws_bedrock_agentcore 👍(0) 💚(2) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
memory_application_logs 8928.57 5813.95 -3114.62 (-34.88%) 💔

Package aws_billing 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
cur 4716.98 3194.89 -1522.09 (-32.27%) 💔

Package azure 👍(5) 💚(3) 💔(4)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
springcloudlogs 8547.01 6060.61 -2486.4 (-29.09%) 💔
events 28571.43 22727.27 -5844.16 (-20.45%) 💔
identity_protection 9174.31 6060.61 -3113.7 (-33.94%) 💔
platformlogs 5988.02 4950.5 -1037.52 (-17.33%) 💔

Package azure_ai_foundry 👍(0) 💚(1) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
logs 1472.75 1212.12 -260.63 (-17.7%) 💔

Package azure_app_service 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
app_service_logs 2500 1862.2 -637.8 (-25.51%) 💔

Package azure_frontdoor 👍(0) 💚(1) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
access 3067.48 1848.43 -1219.05 (-39.74%) 💔

Package azure_functions 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
functionapplogs 3412.97 1972.39 -1440.58 (-42.21%) 💔

Package azure_metrics 👍(0) 💚(0) 💔(4)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
compute_vm 200000 166666.67 -33333.33 (-16.67%) 💔
compute_vm_scaleset 333333.33 200000 -133333.33 (-40%) 💔
container_instance 500000 333333.33 -166666.67 (-33.33%) 💔
container_service 250000 166666.67 -83333.33 (-33.33%) 💔

Package barracuda 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
waf 618.05 456.41 -161.64 (-26.15%) 💔

Package barracuda_cloudgen_firewall 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
log 13888.89 7518.8 -6370.09 (-45.86%) 💔

Package bbot 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
asm_intel 3378.38 2512.56 -865.82 (-25.63%) 💔

Package beelzebub 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
logs 2475.25 1607.72 -867.53 (-35.05%) 💔

Package beyondinsight_password_safe 👍(2) 💚(1) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
managedsystem 6451.61 3787.88 -2663.73 (-41.29%) 💔
session 8928.57 5882.35 -3046.22 (-34.12%) 💔

Package carbon_black_cloud 👍(1) 💚(0) 💔(4)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
asset_vulnerability_summary 18181.82 10638.3 -7543.52 (-41.49%) 💔
audit 25641.03 18867.92 -6773.11 (-26.42%) 💔
endpoint_event 1992.03 1620.75 -371.28 (-18.64%) 💔
watchlist_hit 5524.86 4629.63 -895.23 (-16.2%) 💔

Package carbonblack_edr 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
log 4926.11 3773.58 -1152.53 (-23.4%) 💔

Package cef 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
log 4878.05 3690.04 -1188.01 (-24.35%) 💔

Package ceph 👍(2) 💚(3) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
cluster_status 6944.44 5291.01 -1653.43 (-23.81%) 💔
osd_pool_stats 20408.16 16393.44 -4014.72 (-19.67%) 💔

Package checkpoint_harmony_endpoint 👍(4) 💚(2) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
threatextraction 6097.56 5154.64 -942.92 (-15.46%) 💔

Package cisco_aironet 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
log 3021.15 2123.14 -898.01 (-29.72%) 💔

Package cisco_duo 👍(4) 💚(2) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
summary 50000 30303.03 -19696.97 (-39.39%) 💔
trust_monitor 21739.13 15873.02 -5866.11 (-26.98%) 💔

Package cisco_nexus 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
log 1579.78 1148.11 -431.67 (-27.32%) 💔

Package citrix_adc 👍(2) 💚(2) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
lbvserver 5917.16 4694.84 -1222.32 (-20.66%) 💔
system 6369.43 3184.71 -3184.72 (-50%) 💔

Package claroty_ctd 👍(1) 💚(1) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
event 1190.48 990.1 -200.38 (-16.83%) 💔

Package cloudflare 👍(0) 💚(1) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
logpull 841.04 712.76 -128.28 (-15.25%) 💔

Package coredns 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
log 2604.17 2044.99 -559.18 (-21.47%) 💔

Package couchbase 👍(5) 💚(2) 💔(3)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
cache 20000 14925.37 -5074.63 (-25.37%) 💔
miscellaneous 14705.88 12345.68 -2360.2 (-16.05%) 💔
node 8547.01 6849.32 -1697.69 (-19.86%) 💔

Package crowdstrike 👍(7) 💚(1) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
falcon 5291.01 3119.15 -2171.86 (-41.05%) 💔
falcon 5291.01 4081.63 -1209.38 (-22.86%) 💔

Package cyberarkpas 👍(1) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
monitor 8333.33 5494.51 -2838.82 (-34.07%) 💔

Package cyera 👍(2) 💚(1) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
event 7246.38 5586.59 -1659.79 (-22.91%) 💔

Package darktrace 👍(2) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
ai_analyst_alert 846.74 690.13 -156.61 (-18.5%) 💔

Package digital_guardian 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
arc 2666.67 2227.17 -439.5 (-16.48%) 💔

Package elastic_package_registry 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
metrics 6944.44 4484.3 -2460.14 (-35.43%) 💔

Package elasticsearch 👍(1) 💚(1) 💔(3)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
deprecation 5780.35 4405.29 -1375.06 (-23.79%) 💔
gc 4761.9 3875.97 -885.93 (-18.6%) 💔
slowlog 5847.95 4854.37 -993.58 (-16.99%) 💔

Package entro 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
audit 25000 20833.33 -4166.67 (-16.67%) 💔

Package eset_protect 👍(0) 💚(2) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
device_task 8000 4504.5 -3495.5 (-43.69%) 💔

Package forgerock 👍(4) 💚(4) 💔(3)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
idm_sync 45454.55 28571.43 -16883.12 (-37.14%) 💔
am_access 6369.43 4739.34 -1630.09 (-25.59%) 💔
idm_authentication 47619.05 32258.06 -15360.99 (-32.26%) 💔

Package fortinet_fortiedr 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
log 1602.56 1162.79 -439.77 (-27.44%) 💔

Package fortinet_fortimail 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
log 1295.34 1008.06 -287.28 (-22.18%) 💔

Package gcp 👍(3) 💚(3) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
compute 52631.58 34482.76 -18148.82 (-34.48%) 💔

Package gigamon 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
ami 2732.24 1941.75 -790.49 (-28.93%) 💔

Package github 👍(2) 💚(3) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
code_scanning 5524.86 4566.21 -958.65 (-17.35%) 💔

Package google_workspace 👍(11) 💚(4) 💔(7)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
gcp 12345.68 9259.26 -3086.42 (-25%) 💔
access_transparency 2762.43 2283.11 -479.32 (-17.35%) 💔
vault 10752.69 7518.8 -3233.89 (-30.08%) 💔
admin 2645.5 2222.22 -423.28 (-16%) 💔
alert 3521.13 2915.45 -605.68 (-17.2%) 💔
data_studio 9900.99 5319.15 -4581.84 (-46.28%) 💔
device 2457 1869.16 -587.84 (-23.93%) 💔

Package hadoop 👍(0) 💚(2) 💔(3)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
cluster 6172.84 3968.25 -2204.59 (-35.71%) 💔
namenode 11235.96 8849.56 -2386.4 (-21.24%) 💔
node_manager 23255.81 16393.44 -6862.37 (-29.51%) 💔

Package hashicorp_vault 👍(0) 💚(1) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
audit 4255.32 2849 -1406.32 (-33.05%) 💔

Package iis 👍(1) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
error 3533.57 2754.82 -778.75 (-22.04%) 💔

Package imperva 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
securesphere 2898.55 1663.89 -1234.66 (-42.6%) 💔

Package infoblox_bloxone_ddi 👍(2) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
dns_config 1821.49 1524.39 -297.1 (-16.31%) 💔

Package ironscales 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
incident 1023.54 848.9 -174.64 (-17.06%) 💔

Package island_browser 👍(2) 💚(0) 💔(3)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
admin_actions 4132.23 3246.75 -885.48 (-21.43%) 💔
compromised_credential 23255.81 11363.64 -11892.17 (-51.14%) 💔
user 14492.75 9803.92 -4688.83 (-32.35%) 💔

Package lastpass 👍(2) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
detailed_shared_folder 8849.56 6802.72 -2046.84 (-23.13%) 💔

Package m365_defender 👍(3) 💚(4) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
vulnerability 12195.12 8305.65 -3889.47 (-31.89%) 💔

Package macos 👍(4) 💚(0) 💔(3)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
network_activity 2197.8 1766.78 -431.02 (-19.61%) 💔
process_execution_monitoring 6622.52 5076.14 -1546.38 (-23.35%) 💔
user_and_account_management 7692.31 5952.38 -1739.93 (-22.62%) 💔

Package microsoft_defender_cloud 👍(1) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
assessment 1222.49 900.09 -322.4 (-26.37%) 💔

Package microsoft_defender_endpoint 👍(1) 💚(1) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
machine_action 5780.35 4651.16 -1129.19 (-19.53%) 💔
vulnerability 4950.5 4166.67 -783.83 (-15.83%) 💔

Package microsoft_dhcp 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
log 47619.05 31250 -16369.05 (-34.38%) 💔

Package microsoft_dnsserver 👍(0) 💚(1) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
analytical 2824.86 2331 -493.86 (-17.48%) 💔

Package microsoft_exchange_online_message_trace 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
log 2197.8 1851.85 -345.95 (-15.74%) 💔

Package microsoft_exchange_server 👍(1) 💚(2) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
smtp 66666.67 43478.26 -23188.41 (-34.78%) 💔

Package microsoft_sentinel 👍(2) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
event 5128.21 3861 -1267.21 (-24.71%) 💔

Package microsoft_sqlserver 👍(1) 💚(1) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
audit 1594.9 1228.5 -366.4 (-22.97%) 💔

Package mimecast 👍(8) 💚(1) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
cloud_integrated_logs 10204.08 6666.67 -3537.41 (-34.67%) 💔
ttp_ap_logs 11363.64 7407.41 -3956.23 (-34.81%) 💔

Package mongodb_atlas 👍(4) 💚(2) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
alert 3048.78 2557.54 -491.24 (-16.11%) 💔
mongod_audit 8064.52 4716.98 -3347.54 (-41.51%) 💔

Package nagios_xi 👍(1) 💚(0) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
host 2949.85 2040.82 -909.03 (-30.82%) 💔
service 2659.57 2105.26 -554.31 (-20.84%) 💔

Package nextron_thor 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
thor_forwarding 3745.32 2092.05 -1653.27 (-44.14%) 💔

Package nozomi_networks 👍(5) 💚(2) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
audit 5988.02 4184.1 -1803.92 (-30.13%) 💔

Package o365 👍(1) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
audit 2008.03 1377.41 -630.62 (-31.4%) 💔

Package opencanary 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
events 1876.17 1360.54 -515.63 (-27.48%) 💔

Package oracle 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
database_audit 23809.52 18518.52 -5291 (-22.22%) 💔

Package oracle_weblogic 👍(0) 💚(2) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
admin_server 23809.52 14285.71 -9523.81 (-40%) 💔
managed_server 30303.03 17857.14 -12445.89 (-41.07%) 💔

Package osquery 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
result 27027.03 19230.77 -7796.26 (-28.85%) 💔

Package panw_metrics 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
system 26315.79 20000 -6315.79 (-24%) 💔

Package platform_observability 👍(0) 💚(1) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
kibana_log 16949.15 13698.63 -3250.52 (-19.18%) 💔

Package postgresql 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
log 2610.97 1851.85 -759.12 (-29.07%) 💔

Package prisma_access 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
event 468.82 389.71 -79.11 (-16.87%) 💔

Package prisma_cloud 👍(4) 💚(2) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
misconfiguration 12195.12 9900.99 -2294.13 (-18.81%) 💔

Package proofpoint_365totalprotection 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
email 2066.12 1692.05 -374.07 (-18.1%) 💔

Package proofpoint_essentials 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
threat 1760.56 1302.08 -458.48 (-26.04%) 💔

Package proofpoint_on_demand 👍(1) 💚(0) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
audit 2188.18 1855.29 -332.89 (-15.21%) 💔
message 1715.27 1434.72 -280.55 (-16.36%) 💔

Package proofpoint_tap 👍(1) 💚(2) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
message_blocked 3676.47 2824.86 -851.61 (-23.16%) 💔

Package qualys_vmdr 👍(2) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
knowledge_base 3125 2583.98 -541.02 (-17.31%) 💔

Package rabbitmq 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
log 6097.56 4608.29 -1489.27 (-24.42%) 💔

Package rapid7_insightvm 👍(2) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
asset 5847.95 4739.34 -1108.61 (-18.96%) 💔

Package rubrik 👍(1) 💚(9) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
unmanaged_objects 33333.33 26315.79 -7017.54 (-21.05%) 💔
drives 12820.51 9433.96 -3386.55 (-26.42%) 💔

Package sailpoint_identity_sc 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
events 3636.36 3067.48 -568.88 (-15.64%) 💔

Package salesforce 👍(3) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
logout 30303.03 20408.16 -9894.87 (-32.65%) 💔

Package santa 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
log 3717.47 2659.57 -1057.9 (-28.46%) 💔

Package sentinel_one 👍(13) 💚(3) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
application_risk 11764.71 7751.94 -4012.77 (-34.11%) 💔
threat_event 10493.18 6493.51 -3999.67 (-38.12%) 💔

Package servicenow 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
event 4444.44 3460.21 -984.23 (-22.15%) 💔

Package slack 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
audit 2923.98 2380.95 -543.03 (-18.57%) 💔

Package snort 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
log 12500 8547.01 -3952.99 (-31.62%) 💔

Package snyk 👍(1) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
issues 4310.34 3412.97 -897.37 (-20.82%) 💔

Package spycloud 👍(2) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
compass 3003 2309.47 -693.53 (-23.09%) 💔

Package stan 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
log 16129.03 10101.01 -6028.02 (-37.37%) 💔

Package sublime_security 👍(2) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
email_message 1019.37 734.75 -284.62 (-27.92%) 💔

Package symantec_endpoint_security 👍(1) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
incident 4608.29 3773.58 -834.71 (-18.11%) 💔

Package sysdig 👍(2) 💚(0) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
cspm 3144.65 2415.46 -729.19 (-23.19%) 💔
event 614.25 454.75 -159.5 (-25.97%) 💔

Package tanium 👍(2) 💚(2) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
action_history 11363.64 7194.24 -4169.4 (-36.69%) 💔
endpoint_config 16666.67 9174.31 -7492.36 (-44.95%) 💔

Package teleport 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
audit 569.8 443.46 -126.34 (-22.17%) 💔

Package tenable_ot_security 👍(2) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
assets 3636.36 2881.84 -754.52 (-20.75%) 💔

Package tenable_sc 👍(1) 💚(1) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
plugin 2732.24 2155.17 -577.07 (-21.12%) 💔

Package ti_abusech 👍(5) 💚(2) 💔(5)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
ja3_fingerprints 21276.6 11248.59 -10028.01 (-47.13%) 💔
malware 15873.02 8756.57 -7116.45 (-44.83%) 💔
malwarebazaar 14285.71 8795.07 -5490.64 (-38.43%) 💔
threatfox 11123.47 9199.63 -1923.84 (-17.3%) 💔
malwarebazaar 14285.71 6622.52 -7663.19 (-53.64%) 💔

Package ti_anyrun 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
ioc 3558.72 2958.58 -600.14 (-16.86%) 💔

Package ti_cif3 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
feed 2849 2298.85 -550.15 (-19.31%) 💔

Package ti_crowdstrike 👍(0) 💚(0) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
intel 1631.32 974.66 -656.66 (-40.25%) 💔
ioc 6410.26 4524.89 -1885.37 (-29.41%) 💔

Package ti_domaintools 👍(1) 💚(4) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
domainrisk_feed 83333.33 66666.67 -16666.66 (-20%) 💔

Package ti_eset 👍(3) 💚(3) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
apt 2036.66 1113.59 -923.07 (-45.32%) 💔

Package ti_flashpoint 👍(1) 💚(1) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
vulnerability 2577.32 1937.98 -639.34 (-24.81%) 💔

Package ti_google_threat_intelligence 👍(11) 💚(2) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
first_stage_delivery_vectors 5076.14 4219.41 -856.73 (-16.88%) 💔
malware 6211.18 4901.96 -1309.22 (-21.08%) 💔

Package trellix_edr_cloud 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
event 1338.69 1055.97 -282.72 (-21.12%) 💔

Package trellix_epo_cloud 👍(2) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
group 23809.52 17543.86 -6265.66 (-26.32%) 💔

Package trend_micro_vision_one 👍(5) 💚(4) 💔(3)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
alert 3546.1 2899.39 -646.71 (-18.24%) 💔
audit 15873.02 10810.81 -5062.21 (-31.89%) 💔
audit 15873.02 9523.81 -6349.21 (-40%) 💔

Package tychon 👍(7) 💚(2) 💔(10)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
features 3448.28 2590.67 -857.61 (-24.87%) 💔
harddrive 2531.65 1845.02 -686.63 (-27.12%) 💔
hardware 3636.36 2881.84 -754.52 (-20.75%) 💔
stig 2702.7 1879.7 -823 (-30.45%) 💔
systemcerts 1149.43 959.69 -189.74 (-16.51%) 💔
browser 1663.89 1128.67 -535.22 (-32.17%) 💔
cpu 2801.12 2375.3 -425.82 (-15.2%) 💔
cve 1550.39 1170.96 -379.43 (-24.47%) 💔
epp 1972.39 1538.46 -433.93 (-22%) 💔
exposedservice 2309.47 1949.32 -360.15 (-15.59%) 💔

Package varonis 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
logs 7299.27 5586.59 -1712.68 (-23.46%) 💔

Package vectra_rux 👍(1) 💚(2) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
audit 2564.1 2178.65 -385.45 (-15.03%) 💔
lockdown 14285.71 9708.74 -4576.97 (-32.04%) 💔

Package vsphere 👍(3) 💚(2) 💔(3)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
host 17241.38 12345.68 -4895.7 (-28.4%) 💔
network 83333.33 66666.67 -16666.66 (-20%) 💔
resourcepool 83333.33 47619.05 -35714.28 (-42.86%) 💔

Package windows 👍(4) 💚(3) 💔(3)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
powershell_operational 2770.08 1481.04 -1289.04 (-46.53%) 💔
forwarded 1094.09 864.3 -229.79 (-21%) 💔
sysmon_operational 2673.8 1893.94 -779.86 (-29.17%) 💔

Package withsecure_elements 👍(1) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
incidents 8695.65 7194.24 -1501.41 (-17.27%) 💔

Package wiz 👍(3) 💚(1) 💔(2)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
audit 3690.04 2832.86 -857.18 (-23.23%) 💔
cloud_configuration_finding 8547.01 5917.16 -2629.85 (-30.77%) 💔

Package zeek 👍(20) 💚(17) 💔(6)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
modbus 41666.67 31250 -10416.67 (-25%) 💔
mysql 43478.26 20408.16 -23070.1 (-53.06%) 💔
connection 21739.13 15151.52 -6587.61 (-30.3%) 💔
dce_rpc 30303.03 23255.81 -7047.22 (-23.26%) 💔
traceroute 50000 31250 -18750 (-37.5%) 💔
files 33333.33 15873.02 -17460.31 (-52.38%) 💔

Package zeronetworks 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
audit 4291.85 3311.26 -980.59 (-22.85%) 💔

Package zscaler_zia 👍(4) 💚(1) 💔(3)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
dns 1901.14 1538.46 -362.68 (-19.08%) 💔
tunnel 6250 3846.15 -2403.85 (-38.46%) 💔
web 1468.43 1225.49 -242.94 (-16.54%) 💔

Package zscaler_zpa 👍(3) 💚(1) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
app_connector_status 2336.45 1788.91 -547.54 (-23.43%) 💔

To see the full report comment with /test benchmark fullreport

@mrodm
Copy link
Copy Markdown
Collaborator Author

mrodm commented Apr 1, 2026

Did you consider requiring package dir names to match the manifest name? That would naturally force unique names within the repo and help improve consistency and prevent surprises.

Requiring package directory names to match the manifest name could definitely help with consistency for our current scenario of folders/packages layout. That said, it would likely require updating some existing packages (folders) in the repository, such as sql_input and possible others.

Also, with the plan to support an additional directory level for grouping packages (relates to #17403), I’m not sure this alone would fully address duplicate package names, since the same manifest name could still appear in different subdirectories.

So I think we still need a solution like this one to ensure that there are no duplicated package names. And moreover, this solution would not require to update any package (folder) present in the repository now.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 1, 2026

Vale Linting Results

Summary: 4 warnings, 9 suggestions found

⚠️ Warnings (4)
File Line Rule Message
packages/other/elastic_package_registry2/_dev/build/docs/README.md 34 Elastic.Latinisms Latin terms and abbreviations are a common source of confusion. Use 'for example' instead of 'e.g'.
packages/other/elastic_package_registry2/_dev/build/docs/README.md 35 Elastic.Latinisms Latin terms and abbreviations are a common source of confusion. Use 'and so on' instead of 'etc'.
packages/other/elastic_package_registry2/docs/README.md 34 Elastic.Latinisms Latin terms and abbreviations are a common source of confusion. Use 'for example' instead of 'e.g'.
packages/other/elastic_package_registry2/docs/README.md 35 Elastic.Latinisms Latin terms and abbreviations are a common source of confusion. Use 'and so on' instead of 'etc'.
💡 Suggestions (9)
File Line Rule Message
packages/other/elastic_package_registry2/_dev/build/docs/README.md 24 Elastic.Wordiness Consider using 'to' instead of 'In order to'.
packages/other/elastic_package_registry2/docs/README.md 24 Elastic.Wordiness Consider using 'to' instead of 'In order to'.
packages/other/elastic_package_registry2/docs/README.md 37 Elastic.WordChoice Consider using 'refer to if it's a document, view if it's a UI element' instead of 'see', unless the term is in the UI.
packages/other/elastic_package_registry2/docs/README.md 56 Elastic.WordChoice Consider using 'can, might' instead of 'may', unless the term is in the UI.
packages/other/elastic_package_registry2/docs/README.md 60 Elastic.Wordiness Consider using 'tell' instead of 'inform'.
packages/other/elastic_package_registry2/docs/README.md 60 Elastic.WordChoice Consider using 'can, might' instead of 'may', unless the term is in the UI.
packages/other/elastic_package_registry2/docs/README.md 60 Elastic.WordChoice Consider using 'can, might' instead of 'may', unless the term is in the UI.
packages/other/elastic_package_registry2/docs/README.md 68 Elastic.Ellipses In general, don't use an ellipsis.
packages/other/elastic_package_registry2/docs/README.md 78 Elastic.Wordiness Consider using 'because' instead of 'since'.

The Vale linter checks documentation changes against the Elastic Docs style guide.

To use Vale locally or report issues, refer to Elastic style guide for Vale.

@mrodm
Copy link
Copy Markdown
Collaborator Author

mrodm commented Apr 1, 2026

/test

Comment thread dev/packagenames/packagenames.go Outdated
mrodm added 3 commits April 1, 2026 19:21
…ndetermined

When the elastic-package binary is found but go.mod is missing or does
not declare the elastic-package dependency, fall back to walkPackagePaths
instead of returning an error, consistent with the other fallback cases.

Part of elastic#17206.

Generated with Claude (claude-sonnet-4-6)
@andrewkroh andrewkroh added the documentation Improvements or additions to documentation. Applied to PRs that modify *.md files. label Apr 1, 2026
Flatten the nested error check for readManifest into an if/else if
pattern using fs.ErrNotExist.

Part of elastic#17206.

Generated with Claude (claude-sonnet-4-6)
… copy

Declare `dir` as local in removeOtherPackages to avoid leaking the
loop variable. Quote all git add arguments and the git diff range
argument for correctness and consistency. Add dev/packagenames to the
list of folders copied from main, ensuring the package name uniqueness
validation is available on backport branches.

Part of elastic#17206.

Generated with Claude (claude-sonnet-4-6)
@mrodm mrodm force-pushed the avoid_duplicated_pkg_names branch from ade349c to 5b27711 Compare April 2, 2026 10:59
Comment thread packages/other/elastic_package_registry2/manifest.yml Outdated
Comment thread packages/other/elastic_package_registry2/manifest.yml Outdated
…Path

Keep only the strategy-level log messages in findPackagePaths and
remove the low-signal implementation detail logs from
elasticPackageBinaryPath.

Part of elastic#17206.

Generated with Claude (claude-sonnet-4-6)
@mrodm
Copy link
Copy Markdown
Collaborator Author

mrodm commented Apr 2, 2026

/test

Comment thread dev/packagenames/packagenames.go Outdated
return checkDuplicateNames(paths)
}

func findPackagePaths(dir string) ([]string, error) {
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Currently, this method relies on elastic-package find command and if it is not supported (elastic-package <0.118.0) it finds all package manifests recursively using filepath.WalkDir.

As it has to be supported (because of backport branches) finding all packages via a walk path , WDYT about removing the support of elastic-package find here? @elastic/ecosystem

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.

From what i understand, elastic-package find is still in technical preview. I understand it comes handy to list all packages under a given folder, but as a technical preview it could lead to unexpected errors if the command is changed... and we use it as dependency on this mage command.
With this said, i think we could remove the dependency and the code around validating versions etc. We can keep the walk, or use Glob with a fixed deep pattern (packages/*/manifest.yml) and extend it to any deep we might have in the future, to obtain the same list of directories. This way we have a single way of collecting the list and verifying the names. If we ever need to filter or use the features of the find command, other than listing all the packages, then i think it would be worth on adding the command...

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Agree with that, I'll remove the usage of elastic-package for that purpose for now, so the process looks for packages (based on the manifest.yml files) following the WalkDir process.

@andrewkroh andrewkroh removed the documentation Improvements or additions to documentation. Applied to PRs that modify *.md files. label Apr 2, 2026
@mrodm mrodm marked this pull request as ready for review April 2, 2026 17:06
@mrodm mrodm requested a review from a team as a code owner April 2, 2026 17:06
mrodm and others added 3 commits April 7, 2026 13:20
Replace the version-gated elastic-package find approach with a single
filepath.WalkDir-based discovery. This removes the dependency on the
elastic-package binary, the semver version check, and the citools
import, simplifying package discovery to a single consistent code path.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@elasticmachine
Copy link
Copy Markdown

elasticmachine commented Apr 7, 2026

@mrodm mrodm requested a review from teresaromero April 7, 2026 14:49
Comment on lines +171 to +173
echo "Copying $PACKAGENAMES_SCRIPTS_FOLDER from $SOURCE_BRANCH..."
git checkout "$SOURCE_BRANCH" -- "${PACKAGENAMES_SCRIPTS_FOLDER}"
git add "${PACKAGENAMES_SCRIPTS_FOLDER}"
Copy link
Copy Markdown
Collaborator Author

@mrodm mrodm Apr 7, 2026

Choose a reason for hiding this comment

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

These are the main changes in this file.
The new folder dev/packagenames needs to be copied into the backport branch too.

@mrodm mrodm merged commit f91bba4 into elastic:main Apr 8, 2026
9 of 10 checks passed
@mrodm mrodm deleted the avoid_duplicated_pkg_names branch April 8, 2026 10:43
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.

[CI] Add validation to prevent duplicate package names

4 participants