Skip to content

Python script only packages BE support - #48942

Merged
cdcme merged 2 commits into
feat/41470-python-script-onlyfrom
feat/48393-python-script-only-be
Jul 8, 2026
Merged

Python script only packages BE support#48942
cdcme merged 2 commits into
feat/41470-python-script-onlyfrom
feat/48393-python-script-only-be

Conversation

@cdcme

@cdcme cdcme commented Jul 8, 2026

Copy link
Copy Markdown
Member

Related issue: Resolves #48393

Adds .py as an accepted script-only software package on the server — mirroring .sh, assigned the new py_packages source and installable on macOS and Linux hosts.

Checklist for submitter

  • Input data is properly validated, SELECT * is avoided, SQL injection is prevented (using placeholders for values in statements), JS inline code is prevented especially for url redirects, and untrusted data interpolated into shell scripts/commands is validated against shell metacharacters.

Testing

  • Added/updated automated tests
  • QA'd all new/changed functionality manually

@cdcme
cdcme marked this pull request as ready for review July 8, 2026 14:05
@cdcme
cdcme requested a review from a team as a code owner July 8, 2026 14:05
@cdcme

cdcme commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

@claude review once.

@codecov

codecov Bot commented Jul 8, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 80.00000% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 68.11%. Comparing base (b6e0cac) to head (baf6242).
⚠️ Report is 2 commits behind head on feat/41470-python-script-only.

Files with missing lines Patch % Lines
ee/server/service/software_installers.go 66.66% 2 Missing ⚠️
Additional details and impacted files
@@                      Coverage Diff                       @@
##           feat/41470-python-script-only   #48942   +/-   ##
==============================================================
  Coverage                          68.11%   68.11%           
==============================================================
  Files                               3709     3709           
  Lines                             235118   235146   +28     
  Branches                           12498    12498           
==============================================================
+ Hits                              160148   160180   +32     
+ Misses                             60594    60590    -4     
  Partials                           14376    14376           
Flag Coverage Δ
backend 69.73% <80.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@cdcme

cdcme commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

@claude review once

@cdcme
cdcme merged commit fb9966e into feat/41470-python-script-only Jul 8, 2026
39 checks passed
@cdcme
cdcme deleted the feat/48393-python-script-only-be branch July 8, 2026 17:53
cdcme added a commit that referenced this pull request Jul 16, 2026
**Related issue:** Resolves #41470

Adds support for uploading Python (`.py`) script-only software packages
— accepted as script-only (the file contents become the install script;
advanced options and automatic install follow `.sh`/`.ps1`), assigned
the new `py_packages` source, and installable on macOS and Linux hosts
across the UI, REST API, and GitOps.

Feature branch combining the backend (#48942) and frontend (#48946)
sub-PRs.

# Checklist for submitter

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.

## Testing

- [x] Added/updated automated tests
- [x] QA'd all new/changed functionality manually


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added support for Python (`.py`) script-only software packages across
UI uploads, API/self-service installs, and GitOps parsing.
* Python installers now derive metadata correctly and render the proper
Python icon, with install eligibility for macOS & Linux.
* **Bug Fixes**
* Improved installer-script validation and “supported file types” error
messages to include `.py` (and consistent handling of related script
fields/options).
* **Tests**
* Expanded unit, integration, and GitOps tests to cover Python package
parsing, metadata derivation, platform/host eligibility, and UI
rendering.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
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.

Python script-only packages: backend validation, platform mapping, source & install eligibility

2 participants