- @noahtalerman: "at" is more accurate than "by" because my
understanding is that the password will never be rotated before the
shown time. That's when the command goes out.
We are planning to productize OTEL for our on-prem customers. This makes
our on-prem offering more attractive against our competition. As part of
our on-prem story, we need to make telemetry a first-class experience.
---------
Co-authored-by: Luke Heath <luke@fleetdm.com>
**Related issue:** Resolves#42480
Script packages (`.sh`, `.ps1`) are persisted server-side in the
`script_contents` table, but `addScriptPackageMetadata` validates them
with `ValidateHostScriptContents(scriptContents, false)`, enforcing the
unsaved script limit (10K characters) instead of the saved limit (500K
characters).
This one-line fix changes `false` to `true`, allowing script packages up
to 500K characters, consistent with other saved scripts.
# Checklist for submitter
- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
## Testing
- [x] Added/updated automated tests
- [ ] QA'd all new/changed functionality manually
Closes: https://github.com/fleetdm/fleet/issues/42431
Changes:
- Updated the "Article meta tags" section of the writing page in the
handbook to document the "whitepaper" category and required meta tags
for whitepaper articles
<!-- Add the related story/sub-task/bug number, like Resolves#123, or
remove if NA -->
**Related issue:** Resolves # N/A
- Resolves an issue that prevents some locally pulled docker images from
being pushed to ECR.
<!-- Add the related story/sub-task/bug number, like Resolves#123, or
remove if NA -->
**Related issue:** Resolves#33418
Demo video: https://www.youtube.com/watch?v=gtsIYxmIOSo
Docs: https://github.com/fleetdm/fleet/pull/42269/changes
# Checklist for submitter
- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
## Testing
- [x] Added/updated automated tests
- [x] Where appropriate, [automated tests simulate multiple hosts and
test for host
isolation](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/reference/patterns-backend.md#unit-testing)
(updates to one hosts's records do not affect another)
- [x] QA'd all new/changed functionality manually
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Windows profiles now send SyncML <Delete> commands when profiles are
removed or hosts change teams, ensuring profile settings are removed
from devices like on macOS.
* Deletion is handled as a two-phase flow: pending removals are enqueued
and tracked instead of being immediately deleted.
* **Tests**
* Added/updated tests for delete-command generation, remove-status
mappings, and end-to-end removal reconciliation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
- Updates the Slack channel reference from `#social-media-comments` to
`#linkedin-comments` in the marketing ritual, handbook responsibility
section, and team responsibilities page to match the actual channel name
(`C0AP1FM3ES2`).
- Adds an explicit responsibility to the Social Media Consultant role
(`@tombasgil`) for monitoring and responding to comments on company page
posts (e.g., LinkedIn), with a reference to the `#linkedin-comments`
Slack channel where tracked post comments are surfaced.
### Changes
| File | Change |
|------|--------|
| `handbook/marketing/marketing.rituals.yml` | Updated Slack channel
name to `#linkedin-comments` in the "Check LinkedIn comments" daily
ritual |
| `handbook/marketing/README.md` | Updated Slack channel name to
`#linkedin-comments` in the "Monitor and respond to LinkedIn comments"
responsibility section |
| `handbook/marketing/marketing-responsibilities.md` | Added company
page post comment monitoring responsibility to Thomas Basgil's Social
Media Consultant role |
Built for [Sam
Pfluger](https://fleetdm.slack.com/archives/D0AF8QFBVHB/p1774562241396389)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)
---------
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: Sam Pfluger <108141731+Sampfluger88@users.noreply.github.com>
Changes:
- Added a new script to the website: `cleanup-old-usage-statistics`, a
script that deletes `HistoricalUsageSnapshot` records stored in the
website's database that are older than 60 days.
<!-- Add the related story/sub-task/bug number, like Resolves#123, or
remove if NA -->
**Related issue:** Resolves#30453
All the work for this was already done in
https://github.com/fleetdm/fleet/pull/32492. I verified that
`generate-gitops` outputs the expected categories, and that `gitops`
reads them back in correctly. This PR just removes the warning
Changes:
- Moved documentation pages into the docs/ folder
- Updated routes, poicies, and importer.less
- Renamed the "scripts" page to "script-library" to be consistent with
the other landing pages for YAML documentation
- removed a stray console.log() in the new-licence page script
## Summary
- Adds a new **"Monitor and respond to LinkedIn comments"**
responsibility to the marketing handbook
(`handbook/marketing/README.md`) with a documented process for daily
LinkedIn comment monitoring, response, reposting, and SME escalation.
- Adds a new **"Check LinkedIn comments"** daily ritual to
`handbook/marketing/marketing.rituals.yml` with DRI set to `@tombasgil`
(Social Media Strategy and Management consultant).
- The new responsibility links to the
[#social-media-comments](https://fleetdm.slack.com/archives/C0AP1FM3ES2)
Slack channel for tracked post comments and documents Hootsuite as the
cataloguing tool.
Built for [Sam
Pfluger](https://fleetdm.slack.com/archives/C01ALP02RB5/p1774555088820749?thread_ts=1774539723.450349&cid=C01ALP02RB5)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
<!-- Add the related story/sub-task/bug number, like Resolves#123, or
remove if NA -->
**Related issue:** Resolves#41541, #42293
- [x] Changes file added for user-visible changes in `changes/`
- [x] Added/updated automated tests
- [x] QA'd all new/changed functionality manually
<!-- Add the related story/sub-task/bug number, like Resolves#123, or
remove if NA -->
**Related issue:** Resolves#39842
Replaces the call to
`maintained_apps.FetchAppsList(context.Background())` which downloads
the apps.json list from github to the list Fleet-maintained apps
endpoint. This is so we can match apps by their Fleet-maintained app ID
instead of by name which can cause problems when a Windows FMA is
associated to a title with the wrong name (e.g. title is `7-Zip 23.01`
instead of the current FMA's name `7-Zip 25.01`).
# Checklist for submitter
If some of the following don't apply, delete the relevant line.
- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.
- [ ] 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.
- [ ] If paths of existing endpoints are modified without backwards
compatibility, checked the frontend/CLI for any necessary changes
## Testing
- [x] Added/updated automated tests
- [ ] Where appropriate, [automated tests simulate multiple hosts and
test for host
isolation](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/reference/patterns-backend.md#unit-testing)
(updates to one hosts's records do not affect another)
- [x] QA'd all new/changed functionality manually
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* Configured pre-commit hooks to automatically format code before
commits are made.
* Integrated code formatting tooling into the development workflow for
JavaScript, TypeScript, and JSX files in the frontend.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
- [x] Manual testing
- [x] Confirmed decent speed on a MBP M5 48g RAM
https://www.loom.com/share/0c803cbcca7f46579f44be9ec06e787e
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
## Summary
- Removes the "Creating contacts in the wild" subsection from the
Go-To-Market operations handbook page
(`handbook/company/go-to-market-operations.md`).
- No other content was modified; surrounding sections (Events, SWAG)
remain intact.
Built for [Sam
Pfluger](https://fleetdm.slack.com/archives/D0AF8QFBVHB/p1774543951111849)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Closes: https://github.com/fleetdm/confidential/issues/14516
Changes:
- Added inputs for individual platforms to the license form on
/new-license
- Updated contact descriptions set by the receive-from-stripe webhook
- Updated supported intentSignal values in the createHistoricalEvent
helper
- Updated the create-quote action to update contact descriptions and
create a historical event
Resolves: #42141
Also updated the error messages for iOS to wrap the app name in quotes.
Requested by `customer-pingali`:
> Deploying Android apps via gitops, I’m running into this message:
```
[+] applying 52 app store apps for team Android - BYOD
Error: applying app store apps for team: "Android - BYOD": POST /api/latest/fleet/software/app_store_apps/batch received status 422 Validation Failed: Couldn't add software. The application ID isn't available in Play Store. Please find ID on the Play Store and try again.
```
> I’ll double-check them, but it would be great for your customers if
you’d specify which app ID isn’t found.
# Checklist for submitter
## Testing
- [x] Added/updated automated tests
---------
Co-authored-by: Ian Littman <iansltx@gmail.com>
<!-- Add the related story/sub-task/bug number, like Resolves#123, or
remove if NA -->
**Related issue:** Resolves#41670
# Checklist for submitter
If some of the following don't apply, delete the relevant line.
- [X] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.
- [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
- [ ] QA'd all new/changed functionality manually
## Database migrations
- [X] Checked schema for all modified table for columns that will
auto-update timestamps during migration.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Automatic recovery lock password rotation for Mac devices—passwords
now rotate 1 hour after being viewed or accessed via the API, enhancing
security.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
<!-- Add the related story/sub-task/bug number, like Resolves#123, or
remove if NA -->
**Related issue:** Resolves#42327
We're not doing Windows because we're missing the failed activity for
Windows profiles, which we do have for Apple.
The actual code change is small. This PR is mostly test changes.
## Demo video and docs
https://www.youtube.com/watch?v=YKNguaQQs_Ehttps://github.com/fleetdm/fleet/pull/42332/changes
# Checklist for submitter
- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.
## 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
* **Improvements**
* Apple device configuration profiles (macOS, iOS, iPadOS) now
automatically retry failed deliveries up to 3 times instead of once.
* Windows configuration profiles maintain their existing single retry
limit.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
- Changed the bottom CTA heading on the homepage from "Reduce agent
sprawl" to "Reduce sprawl" in `website/views/pages/homepage.ejs`.
## Changes
Single text change at line 1474 of the homepage template.
---
Built for [Ashish
Kuthiala](https://fleetdm.slack.com/archives/D0AG9JQ53GA/p1774487659386179)
by [Kilo for Slack](https://kilo.ai/features/slack-integration)
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>