mirror of
https://github.com/fleetdm/fleet
synced 2026-05-24 01:18:42 +00:00
Merge branch 'main' into spokanemac-article-guide-maintenance-window
This commit is contained in:
commit
c98a76ca47
1372 changed files with 144252 additions and 18089 deletions
2
.github/ISSUE_TEMPLATE/feature-request.md
vendored
2
.github/ISSUE_TEMPLATE/feature-request.md
vendored
|
|
@ -11,6 +11,8 @@ assignees: ''
|
|||
Thanks for filing an issue! Please use the prompts below to provide as much context as you can about your use case and motivations.
|
||||
-->
|
||||
|
||||
Gong snippet: TODO <!-- Insert the link to the relevant, private Gong snippet ("Share internally" button). Remove this item if you don't have access to Fleet's Gong or there is no Gong recording available -->
|
||||
|
||||
## Problem
|
||||
|
||||
<!-- Describe the problem you're trying to solve. What are you trying to accomplish?
|
||||
|
|
|
|||
9
.github/ISSUE_TEMPLATE/release-qa.md
vendored
9
.github/ISSUE_TEMPLATE/release-qa.md
vendored
|
|
@ -118,6 +118,15 @@ Smoke tests are limited to core functionality and serve as a pre-release final r
|
|||
7. Verify scripts display correctly in Activity feed.
|
||||
</td><td>pass/fail</td></tr>
|
||||
|
||||
<tr><td>Software</td><td>Verify software library and install / download</td><td>
|
||||
|
||||
1. Verify software library upload/download/delete.
|
||||
2. From Host details (Windows and macOS) run an install that should PASS, verify.
|
||||
3. From My Device (Windows and macOS) software tab should have self-service items available, verify.
|
||||
4. Verify UI loading state and statuses for installing software.
|
||||
6. Verify software installs display correctly in Activity feed.
|
||||
</td><td>pass/fail</td></tr>
|
||||
|
||||
<tr><td>OS settings</td><td>Verify OS settings functionality</td><td>
|
||||
|
||||
1. Verify able to configure Disk encryption.
|
||||
|
|
|
|||
17
.github/ISSUE_TEMPLATE/story.md
vendored
17
.github/ISSUE_TEMPLATE/story.md
vendored
|
|
@ -32,13 +32,16 @@ What else should contributors [keep in mind](https://fleetdm.com/handbook/compan
|
|||
## Changes
|
||||
|
||||
### Product
|
||||
- [ ] Reference documentation changes: TODO <!-- Specify references documentation changes at fleetdm.com/docs -->
|
||||
- [ ] UI changes: TODO <!-- Insert the link to the relevant Figma cover page. Remove this checkbox if there are no changes to the user interface. -->
|
||||
- [ ] CLI usage changes: TODO <!-- Insert the link to the relevant Figma cover page. Remove this checkbox if there are no changes to the CLI. -->
|
||||
- [ ] REST API changes: TODO <!-- Specify changes as a draft PR to the REST API doc page and request the API DRI for review (codeowner reviews are not automatically requested for drafts). Remove this checkbox if there are no changes necessary. Move this item to the engineering list below if engineering will design the API changes. -->
|
||||
- [ ] Fleet's agent (fleetd) changes: TODO <!-- Specify changes to fleetd. If the change requires a new Fleet (server) version, consider specifying to only enable this change in new Fleet versions. Remove this checkbox if there are no changes necessary. -->
|
||||
- [ ] Permissions changes: TODO <!-- Specify changes as a draft PR to the Manage access doc page. If doc changes aren't necessary, explicitly mention no changes to the doc page. Remove this checkbox if there are no permissions changes. -->
|
||||
- [ ] Changes to paid features or tiers: TODO <!-- Specify "Fleet Free" or "Fleet Premium". If only certain parts of the user story involve paid features, specify which parts. Implementation of paid features should live in the `ee/` directory. -->
|
||||
- [ ] UI changes: TODO <!-- Insert the link to the relevant Figma cover page. Put "No changes" if there are no changes to the user interface. -->
|
||||
- [ ] CLI (fleetctl) usage changes: TODO <!-- Insert the link to the relevant Figma cover page. Put "No changes" if there are no changes to the CLI. -->
|
||||
- [ ] YAML changes: TODO <!-- Specify changes in the YAML files doc page as a PR to the reference docs release branch. Put "No changes" if there are no changes necessary. -->
|
||||
- [ ] REST API changes: TODO <!-- Specify changes in the the REST API doc page as a PR to reference docs release branch. Put "No changes" if there are no changes necessary. Move this item to the engineering list below if engineering will design the API changes. -->
|
||||
- [ ] Fleet's agent (fleetd) changes: TODO <!-- Specify changes to fleetd. If the change requires a new Fleet (server) version, consider specifying to only enable this change in new Fleet versions. Put "No changes" if there are no changes necessary. -->
|
||||
- [ ] Activity changes: TODO <!-- Specify changes to Fleet's activity feed as a draft PR to the Audit log page in the contributor docs: https://github.com/fleetdm/fleet/blob/main/docs/Contributing/Audit-logs.md This PR will be closed before release because the Audit log page is automatically generated: https://fleetdm.com/handbook/company/communications#audit-logs Put "No changes" if there are no changes necessary. -->
|
||||
- [ ] Permissions changes: TODO <!-- Specify changes in the Manage access doc page as a PR to the reference docs release branch. If doc changes aren't necessary, explicitly mention no changes to the doc page. Put "No changes" if there are no permissions changes. -->
|
||||
- [ ] Changes to paid features or tiers: TODO <!-- Specify changes in pricing-features-table.yml as a PR to reference docs release branch. Remove this checkbox and specify "Fleet Free" or "Fleet Premium" if there are no changes to the pricing page necessary. -->
|
||||
- [ ] Other reference documentation changes: TODO <!-- Any other reference doc changes? Specify changes as a PR to reference docs release branch. Put "No changes" if there are no changes necessary. -->
|
||||
- [ ] Once shipped, requester has been notified
|
||||
|
||||
### Engineering
|
||||
- [ ] Feature guide changes: TODO <!-- Specify if a new feature guide is required at fleetdm.com/guides, or if a previous guide should be updated to reflect feature changes. -->
|
||||
|
|
|
|||
1
.github/pull_request_template.md
vendored
1
.github/pull_request_template.md
vendored
|
|
@ -9,6 +9,7 @@ If some of the following don't apply, delete the relevant line.
|
|||
- [ ] Input data is properly validated, `SELECT *` is avoided, SQL injection is prevented (using placeholders for values in statements)
|
||||
- [ ] Added support on fleet's osquery simulator `cmd/osquery-perf` for new osquery data ingestion features.
|
||||
- [ ] Added/updated tests
|
||||
- [ ] If paths of existing endpoints are modified without backwards compatibility, checked the frontend/CLI for any necessary changes
|
||||
- [ ] If database migrations are included, checked table schema to confirm autoupdate
|
||||
- For database migrations:
|
||||
- [ ] Checked schema for all modified table for columns that will auto-update timestamps during migration.
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
name: Build and push fleetdm/fleetctl Docker image
|
||||
name: Build fleetctl docker dependencies and check vulnerabilities
|
||||
|
||||
# Manually trigger this workflow for now
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
image_tag:
|
||||
description: 'Docker image tag'
|
||||
description: "Docker image tag"
|
||||
required: true
|
||||
type: string
|
||||
schedule:
|
||||
- cron: "0 6 * * *"
|
||||
|
||||
# This allows a subsequently queued workflow run to interrupt previous runs
|
||||
concurrency:
|
||||
|
|
@ -23,7 +24,7 @@ permissions:
|
|||
contents: read
|
||||
|
||||
jobs:
|
||||
docker-push:
|
||||
build-and-check:
|
||||
runs-on: ubuntu-latest
|
||||
environment: Docker Hub
|
||||
permissions:
|
||||
|
|
@ -46,25 +47,46 @@ jobs:
|
|||
- name: Set up Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Install Go Dependencies
|
||||
run: make deps-go
|
||||
|
||||
- name: Build fleetdm/wix
|
||||
run: make wix-docker
|
||||
|
||||
- name: Build fleetdm/bomutils
|
||||
run: make bomutils-docker
|
||||
|
||||
- name: Build fleetdm/fleetctl
|
||||
run: make fleetctl-docker
|
||||
|
||||
- name: Push to Docker
|
||||
run: |
|
||||
docker tag fleetdm/fleetctl fleetdm/fleetctl:${{ inputs.image_tag }}
|
||||
docker push fleetdm/fleetctl:${{ inputs.image_tag }}
|
||||
|
||||
- name: Push To quay.io
|
||||
id: push-to-quay
|
||||
uses: redhat-actions/push-to-registry@9986a6552bc4571882a4a67e016b17361412b4df # v2.7.1
|
||||
- name: Run Trivy vulnerability scanner on fleetdm/wix
|
||||
uses: aquasecurity/trivy-action@6e7b7d1fd3e4fef0c5fa8cce1229c54b2c9bd0d8
|
||||
with:
|
||||
image: fleetdm/fleetctl
|
||||
tags: ${{ inputs.image_tag }}
|
||||
registry: quay.io/
|
||||
username: fleetdm+fleetreleaser
|
||||
password: ${{ secrets.QUAY_REGISTRY_PASSWORD }}
|
||||
image-ref: "fleetdm/wix"
|
||||
format: "table"
|
||||
exit-code: "1"
|
||||
ignore-unfixed: true
|
||||
vuln-type: "os,library"
|
||||
severity: "CRITICAL"
|
||||
|
||||
- name: Run Trivy vulnerability scanner on fleetdm/bomutils
|
||||
uses: aquasecurity/trivy-action@6e7b7d1fd3e4fef0c5fa8cce1229c54b2c9bd0d8
|
||||
with:
|
||||
image-ref: "fleetdm/bomutils"
|
||||
format: "table"
|
||||
exit-code: "1"
|
||||
ignore-unfixed: true
|
||||
vuln-type: "os,library"
|
||||
severity: "CRITICAL"
|
||||
|
||||
- name: Run Trivy vulnerability scanner on fleetdm/fleetctl
|
||||
uses: aquasecurity/trivy-action@6e7b7d1fd3e4fef0c5fa8cce1229c54b2c9bd0d8
|
||||
with:
|
||||
image-ref: "fleetdm/fleetctl"
|
||||
format: "table"
|
||||
exit-code: "1"
|
||||
ignore-unfixed: true
|
||||
vuln-type: "os,library"
|
||||
severity: "CRITICAL"
|
||||
8
.github/workflows/build-binaries.yaml
vendored
8
.github/workflows/build-binaries.yaml
vendored
|
|
@ -29,10 +29,13 @@ jobs:
|
|||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
# Set the Node.js version
|
||||
- name: Set up Node.js ${{ vars.NODE_VERSION }}
|
||||
|
|
@ -40,9 +43,6 @@ jobs:
|
|||
with:
|
||||
node-version: ${{ vars.NODE_VERSION }}
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: JS Dependency Cache
|
||||
id: js-cache
|
||||
uses: actions/cache@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0 # v2
|
||||
|
|
|
|||
2
.github/workflows/build-orbit.yaml
vendored
2
.github/workflows/build-orbit.yaml
vendored
|
|
@ -59,7 +59,7 @@ jobs:
|
|||
- name: Set up Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Build, codesign and notarize orbit
|
||||
run: go run ./orbit/tools/build/build.go
|
||||
|
|
|
|||
9
.github/workflows/check-automated-doc.yml
vendored
9
.github/workflows/check-automated-doc.yml
vendored
|
|
@ -36,15 +36,16 @@ jobs:
|
|||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Verify golang generated documentation is up-to-date
|
||||
run: |
|
||||
make generate-doc
|
||||
|
|
|
|||
2
.github/workflows/codeql-analysis.yml
vendored
2
.github/workflows/codeql-analysis.yml
vendored
|
|
@ -56,7 +56,7 @@ jobs:
|
|||
- name: Set up Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
|
|
|
|||
89
.github/workflows/deploy-bulk-operations-dashboard.yml
vendored
Normal file
89
.github/workflows/deploy-bulk-operations-dashboard.yml
vendored
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
name: Deploy app to bulk operations dashboard pipeline on Heroku.
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths:
|
||||
- 'ee/bulk-operations-dashboard/**'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build:
|
||||
permissions:
|
||||
contents: write # for Git to git push
|
||||
if: ${{ github.repository == 'fleetdm/fleet' }}
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [14.x]
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
# Configure our access credentials for the Heroku CLI
|
||||
- uses: akhileshns/heroku-deploy@79ef2ae4ff9b897010907016b268fd0f88561820 # v3.6.8
|
||||
with:
|
||||
heroku_api_key: ${{secrets.HEROKU_API_TOKEN_FOR_BOT_USER}}
|
||||
heroku_app_name: "" # this has to be blank or it doesn't work
|
||||
heroku_email: ${{secrets.HEROKU_EMAIL_FOR_BOT_USER}}
|
||||
justlogin: true
|
||||
- run: heroku auth:whoami
|
||||
|
||||
# Set the Node.js version
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
|
||||
# Now start building!
|
||||
# > …but first, get a little crazy for a sec and delete the top-level package.json file
|
||||
# > i.e. the one used by the Fleet server. This is because require() in node will go
|
||||
# > hunting in ancestral directories for missing dependencies, and since some of the
|
||||
# > bundled transpiler tasks sniff for package availability using require(), this trips
|
||||
# > up when it encounters another Node universe in the parent directory.
|
||||
- run: rm -rf package.json package-lock.json node_modules/
|
||||
# > Turns out there's a similar issue with how eslint plugins are looked up, so we
|
||||
# > delete the top level .eslintrc file too.
|
||||
- run: rm -f .eslintrc.js
|
||||
# > And, as a change to the top-level fleetdm/fleet .gitignore on May 2, 2022 revealed,
|
||||
# > we also need to delete the top level .gitignore file too, so that its rules don't
|
||||
# > interfere with the committing and force-pushing we're doing as part of our deploy
|
||||
# > script here. For more info, see: https://github.com/fleetdm/fleet/pull/5549
|
||||
- run: rm -f .gitignore
|
||||
|
||||
# Get dependencies (including dev deps)
|
||||
- run: cd ee/bulk-operations-dashboard/ && npm install
|
||||
|
||||
# Run sanity checks
|
||||
- run: cd ee/bulk-operations-dashboard/ && npm test
|
||||
|
||||
# Compile assets
|
||||
- run: cd ee/bulk-operations-dashboard/ && npm run build-for-prod
|
||||
|
||||
# Commit newly-built assets locally so we can push them to Heroku below.
|
||||
# (This commit will never be pushed to GitHub- only to Heroku.)
|
||||
# > The local config flags make this work in GitHub's environment.
|
||||
- run: git add ee/bulk-operations-dashboard/.www
|
||||
- run: git -c "user.name=GitHub" -c "user.email=github@example.com" commit -am 'AUTOMATED COMMIT - Deployed the latest, including modified HTML layouts and .sailsrc file that reference minified assets.'
|
||||
|
||||
# Configure the Heroku app we'll be deploying to
|
||||
- run: heroku git:remote -a bulk-operations-dashboard
|
||||
- run: git remote -v
|
||||
|
||||
# Deploy to Heroku (by pushing)
|
||||
# > Since a shallow clone was grabbed, we have to "unshallow" it before forcepushing.
|
||||
- run: echo "Unshallowing local repository…"
|
||||
- run: git fetch --prune --unshallow
|
||||
- run: echo "Deploying branch '${GITHUB_REF##*/}' to Heroku…"
|
||||
- run: git push heroku +${GITHUB_REF##*/}:master
|
||||
- name: 🌐 The dashboard has been deployed
|
||||
run: echo '' && echo '--' && echo 'OK, done. It should be live momentarily.' && echo '(if you get impatient, check the Heroku dashboard for status)'
|
||||
2
.github/workflows/deploy-fleet-website.yml
vendored
2
.github/workflows/deploy-fleet-website.yml
vendored
|
|
@ -64,7 +64,7 @@ jobs:
|
|||
- name: Set up Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
# Download top-level dependencies and build Storybook in the website's assets/ folder
|
||||
- run: npm install --legacy-peer-deps && npm run build-storybook -- -o ./website/assets/storybook --loglevel verbose
|
||||
|
|
|
|||
25
.github/workflows/dogfood-deploy.yml
vendored
25
.github/workflows/dogfood-deploy.yml
vendored
|
|
@ -51,14 +51,17 @@ jobs:
|
|||
- id: fail-on-main
|
||||
run: "false"
|
||||
if: ${{ github.ref == 'main' }}
|
||||
|
||||
- uses: aws-actions/configure-aws-credentials@67fbcbb121271f7775d2e7715933280b06314838 # v1.7.0
|
||||
with:
|
||||
role-to-assume: ${{env.AWS_IAM_ROLE}}
|
||||
aws-region: ${{ env.AWS_REGION }}
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- uses: hashicorp/setup-terraform@633666f66e0061ca3b725c73b2ec20cd13a8fdd1 # v2.0.3
|
||||
with:
|
||||
terraform_version: 1.6.3
|
||||
|
|
@ -77,6 +80,26 @@ jobs:
|
|||
id: plan
|
||||
run: terraform plan -no-color
|
||||
continue-on-error: true
|
||||
- name: Slack Notification
|
||||
if: success()
|
||||
uses: slackapi/slack-github-action@e28cf165c92ffef168d23c5c9000cffc8a25e117 # v1.24.0
|
||||
with:
|
||||
payload: |
|
||||
{
|
||||
"text": "${{ job.status }}\n${{ github.event.pull_request.html_url || github.event.head.html_url }}",
|
||||
"blocks": [
|
||||
{
|
||||
"type": "section",
|
||||
"text": {
|
||||
"type": "mrkdwn",
|
||||
"text": "🚀 🛠️ Dogfood deploy in progress\nhttps://github.com/fleetdm/fleet/actions/runs/${{ github.run_id }}"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
env:
|
||||
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_G_HELP_ENGINEERING_WEBHOOK_URL }}
|
||||
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
|
||||
# first we'll scale everything down and create the new task definitions
|
||||
- name: Terraform Apply
|
||||
id: apply
|
||||
|
|
|
|||
1
.github/workflows/dogfood-gitops.yml
vendored
1
.github/workflows/dogfood-gitops.yml
vendored
|
|
@ -69,6 +69,7 @@ jobs:
|
|||
DOGFOOD_GLOBAL_ENROLL_SECRET: ${{ secrets.DOGFOOD_GLOBAL_ENROLL_SECRET }}
|
||||
DOGFOOD_SSO_ISSUER_URI: ${{ secrets.DOGFOOD_SSO_ISSUER_URI }}
|
||||
DOGFOOD_SSO_METADATA: ${{ secrets.DOGFOOD_SSO_METADATA }}
|
||||
DOGFOOD_MDM_SSO_METADATA_URL: ${{ secrets.DOGFOOD_MDM_SSO_METADATA_URL }}
|
||||
DOGFOOD_FAILING_POLICIES_WEBHOOK_URL: ${{ secrets.DOGFOOD_FAILING_POLICIES_WEBHOOK_URL }}
|
||||
DOGFOOD_VULNERABILITIES_WEBHOOK_URL: ${{ secrets.DOGFOOD_VULNERABILITIES_WEBHOOK_URL }}
|
||||
DOGFOOD_WORKSTATIONS_ENROLL_SECRET: ${{ secrets.DOGFOOD_WORKSTATIONS_ENROLL_SECRET }}
|
||||
|
|
|
|||
44
.github/workflows/fleet-and-orbit.yml
vendored
44
.github/workflows/fleet-and-orbit.yml
vendored
|
|
@ -62,7 +62,6 @@ jobs:
|
|||
timeout-minutes: 60
|
||||
strategy:
|
||||
matrix:
|
||||
go-version: ["${{ vars.GO_VERSION }}"]
|
||||
mysql: ["mysql:8.0.36"]
|
||||
runs-on: ubuntu-latest
|
||||
needs: gen
|
||||
|
|
@ -72,10 +71,13 @@ jobs:
|
|||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ matrix.go-version }}
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
# Set the Node.js version
|
||||
- name: Set up Node.js ${{ vars.NODE_VERSION }}
|
||||
|
|
@ -83,9 +85,6 @@ jobs:
|
|||
with:
|
||||
node-version: ${{ vars.NODE_VERSION }}
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Start tunnel
|
||||
env:
|
||||
CERT_PEM: ${{ secrets.CLOUDFLARE_TUNNEL_FLEETUEM_CERT_B64 }}
|
||||
|
|
@ -111,7 +110,7 @@ jobs:
|
|||
done
|
||||
|
||||
- name: Start Infra Dependencies
|
||||
run: FLEET_MYSQL_IMAGE=${{ matrix.mysql }} docker-compose up -d mysql redis &
|
||||
run: FLEET_MYSQL_IMAGE=${{ matrix.mysql }} docker compose up -d mysql redis &
|
||||
|
||||
- name: Install JS Dependencies
|
||||
run: make deps-js
|
||||
|
|
@ -175,9 +174,6 @@ jobs:
|
|||
# This job also makes sure the Fleet server is up and running.
|
||||
set-enroll-secret:
|
||||
timeout-minutes: 60
|
||||
strategy:
|
||||
matrix:
|
||||
go-version: ["${{ vars.GO_VERSION }}"]
|
||||
runs-on: ubuntu-latest
|
||||
needs: gen
|
||||
steps:
|
||||
|
|
@ -186,13 +182,13 @@ jobs:
|
|||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ matrix.go-version }}
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Build Fleetctl
|
||||
run: make fleetctl
|
||||
|
|
@ -218,9 +214,6 @@ jobs:
|
|||
# Here we generate the Fleet Desktop and osqueryd targets for
|
||||
# macOS which can only be generated from a macOS host.
|
||||
build-macos-targets:
|
||||
strategy:
|
||||
matrix:
|
||||
go-version: ["${{ vars.GO_VERSION }}"]
|
||||
# Set macOS version to '12' (current equivalent to macos-latest) for
|
||||
# building the binary. This ensures compatibility with macOS version 13 and
|
||||
# later, avoiding runtime errors on systems using macOS 13 or newer.
|
||||
|
|
@ -234,13 +227,13 @@ jobs:
|
|||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ matrix.go-version }}
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Build desktop.app.tar.gz and osqueryd.app.tar.gz
|
||||
run: |
|
||||
|
|
@ -269,9 +262,6 @@ jobs:
|
|||
# installed, and installing it is time consuming and unreliable.
|
||||
run-tuf-and-gen-pkgs:
|
||||
timeout-minutes: 60
|
||||
strategy:
|
||||
matrix:
|
||||
go-version: ["${{ vars.GO_VERSION }}"]
|
||||
runs-on: ubuntu-latest
|
||||
needs: [gen, build-macos-targets]
|
||||
steps:
|
||||
|
|
@ -280,13 +270,13 @@ jobs:
|
|||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ matrix.go-version }}
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Download macos pre-built apps
|
||||
id: download
|
||||
|
|
|
|||
|
|
@ -53,7 +53,6 @@ jobs:
|
|||
# - Unattended installation of Docker on macOS fails. (see
|
||||
# https://github.com/docker/for-mac/issues/6450)
|
||||
os: [ubuntu-latest]
|
||||
go-version: ['${{ vars.GO_VERSION }}']
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
|
||||
|
|
@ -62,13 +61,13 @@ jobs:
|
|||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ matrix.go-version }}
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Build Fleetctl
|
||||
run: make fleetctl
|
||||
|
|
|
|||
10
.github/workflows/fleetd-tuf.yml
vendored
10
.github/workflows/fleetd-tuf.yml
vendored
|
|
@ -30,16 +30,16 @@ jobs:
|
|||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Update orbit/TUF.md
|
||||
run: |
|
||||
make fleetd-tuf
|
||||
|
|
|
|||
39
.github/workflows/generate-desktop-targets.yml
vendored
39
.github/workflows/generate-desktop-targets.yml
vendored
|
|
@ -13,18 +13,13 @@ on:
|
|||
- '.github/workflows/generate-desktop-targets.yml'
|
||||
workflow_dispatch:
|
||||
|
||||
# This allows a subsequently queued workflow run to interrupt previous runs
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id}}
|
||||
cancel-in-progress: true
|
||||
|
||||
defaults:
|
||||
run:
|
||||
# fail-fast using bash -eo pipefail. See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference
|
||||
shell: bash
|
||||
|
||||
env:
|
||||
FLEET_DESKTOP_VERSION: 1.29.0
|
||||
FLEET_DESKTOP_VERSION: 1.33.0
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
|
@ -45,13 +40,13 @@ jobs:
|
|||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Import signing keys
|
||||
env:
|
||||
|
|
@ -98,13 +93,13 @@ jobs:
|
|||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Generate fleet-desktop.exe
|
||||
run: |
|
||||
|
|
@ -139,13 +134,13 @@ jobs:
|
|||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Generate desktop.tar.gz
|
||||
run: |
|
||||
|
|
@ -167,13 +162,13 @@ jobs:
|
|||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Generate desktop.tar.gz
|
||||
run: |
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ defaults:
|
|||
shell: bash
|
||||
|
||||
env:
|
||||
OSQUERY_VERSION: 5.12.2
|
||||
OSQUERY_VERSION: 5.13.1
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
|
|
|||
3
.github/workflows/golangci-lint.yml
vendored
3
.github/workflows/golangci-lint.yml
vendored
|
|
@ -38,7 +38,6 @@ jobs:
|
|||
matrix:
|
||||
# See #9943, we just need to add windows-latest here once all issues are fixed.
|
||||
os: [ubuntu-latest, macos-latest]
|
||||
go-version: ['${{ vars.GO_VERSION }}']
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
|
|
@ -52,7 +51,7 @@ jobs:
|
|||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ matrix.go-version }}
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Install dependencies (Linux)
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
|
|
|
|||
4
.github/workflows/goreleaser-fleet.yaml
vendored
4
.github/workflows/goreleaser-fleet.yaml
vendored
|
|
@ -20,7 +20,7 @@ permissions:
|
|||
|
||||
jobs:
|
||||
goreleaser:
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-20.04-4-cores
|
||||
environment: Docker Hub
|
||||
permissions:
|
||||
contents: write
|
||||
|
|
@ -44,7 +44,7 @@ jobs:
|
|||
- name: Set up Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
# Set the Node.js version
|
||||
- name: Set up Node.js ${{ vars.NODE_VERSION }}
|
||||
|
|
|
|||
13
.github/workflows/goreleaser-orbit.yaml
vendored
13
.github/workflows/goreleaser-orbit.yaml
vendored
|
|
@ -5,11 +5,6 @@ on:
|
|||
tags:
|
||||
- "orbit-*" # For testing, use a pre-release tag like 'orbit-1.24.0-1'
|
||||
|
||||
# This allows a subsequently queued workflow run to interrupt previous runs
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id}}
|
||||
cancel-in-progress: true
|
||||
|
||||
defaults:
|
||||
run:
|
||||
# fail-fast using bash -eo pipefail. See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference
|
||||
|
|
@ -56,7 +51,7 @@ jobs:
|
|||
- name: Set up Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Run GoReleaser
|
||||
run: go run github.com/goreleaser/goreleaser@56c9d09a1b925e2549631c6d180b0a1c2ebfac82 release --debug --rm-dist --skip-publish -f orbit/goreleaser-macos.yml # v1.20.0
|
||||
|
|
@ -95,7 +90,7 @@ jobs:
|
|||
- name: Set up Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Run GoReleaser
|
||||
run: go run github.com/goreleaser/goreleaser@56c9d09a1b925e2549631c6d180b0a1c2ebfac82 release --debug --rm-dist --skip-publish -f orbit/goreleaser-linux.yml # v1.20.0
|
||||
|
|
@ -128,7 +123,7 @@ jobs:
|
|||
- name: Set up Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Run GoReleaser
|
||||
run: go run github.com/goreleaser/goreleaser@56c9d09a1b925e2549631c6d180b0a1c2ebfac82 release --debug --rm-dist --skip-publish -f orbit/goreleaser-linux-arm64.yml # v1.20.0
|
||||
|
|
@ -161,7 +156,7 @@ jobs:
|
|||
- name: Set up Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Run GoReleaser
|
||||
run: go run github.com/goreleaser/goreleaser@56c9d09a1b925e2549631c6d180b0a1c2ebfac82 release --debug --rm-dist --skip-publish -f orbit/goreleaser-windows.yml # v1.20.0
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ jobs:
|
|||
- name: Set up Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
# Set the Node.js version
|
||||
- name: Set up Node.js ${{ vars.NODE_VERSION }}
|
||||
|
|
|
|||
8
.github/workflows/integration.yml
vendored
8
.github/workflows/integration.yml
vendored
|
|
@ -264,13 +264,13 @@ jobs:
|
|||
npm install -g fleetctl
|
||||
fleetctl config set --address ${{ needs.gen.outputs.address }} --token ${{ needs.login.outputs.token }}
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Build Fleetctl
|
||||
run: make fleetctl
|
||||
|
|
|
|||
64
.github/workflows/push-osquery-perf-to-ecr.yml
vendored
64
.github/workflows/push-osquery-perf-to-ecr.yml
vendored
|
|
@ -1,64 +0,0 @@
|
|||
name: Build docker image and publish to ECR
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
enroll_secret:
|
||||
description: 'Enroll Secret'
|
||||
required: true
|
||||
url:
|
||||
description: 'Fleet server URL'
|
||||
required: true
|
||||
host_count:
|
||||
description: 'Amount of hosts to emulate'
|
||||
required: true
|
||||
default: 20
|
||||
tag:
|
||||
description: 'docker image tag'
|
||||
required: true
|
||||
default: latest
|
||||
|
||||
# This allows a subsequently queued workflow run to interrupt previous runs
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id}}
|
||||
cancel-in-progress: true
|
||||
|
||||
defaults:
|
||||
run:
|
||||
# fail-fast using bash -eo pipefail. See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference
|
||||
shell: bash
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build-docker:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@05b148adc31e091bafbaf404f745055d4d3bc9d2 # v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.LOADTEST_AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.LOADTEST_AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-2
|
||||
|
||||
- name: Login to Amazon ECR
|
||||
id: login-ecr
|
||||
uses: aws-actions/amazon-ecr-login@2f9f10ea3fa2eed41ac443fee8bfbd059af2d0a4 # v1
|
||||
|
||||
- name: Build, tag, and push image to Amazon ECR
|
||||
env:
|
||||
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
|
||||
ECR_REPOSITORY: osquery-perf
|
||||
IMAGE_TAG: ${{ github.event.inputs.tag }}
|
||||
run: |
|
||||
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG --build-arg ENROLL_SECRET=${{ github.event.inputs.enroll_secret }} --build-arg HOST_COUNT=${{ github.event.inputs.host_count }} --build-arg SERVER_URL=${{ github.event.inputs.url }} -f Dockerfile.osquery-perf .
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
84
.github/workflows/release-fleetctl-docker-deps.yaml
vendored
Normal file
84
.github/workflows/release-fleetctl-docker-deps.yaml
vendored
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
# Builds and releases to production the fleetdm/bomutils:latest and fleetdm/wix:latest
|
||||
# docker images, which are the docker image dependencies of the fleetctl command.
|
||||
#
|
||||
# This is separate from Fleet releases because we only release
|
||||
# fleetdm/bomutils and fleetdm/wix only if we add new dependencies
|
||||
# or for security updates.
|
||||
name: Release fleetctl docker dependencies
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "fleetctl-docker-deps-*"
|
||||
|
||||
# This allows a subsequently queued workflow run to interrupt previous runs
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id}}
|
||||
cancel-in-progress: true
|
||||
|
||||
defaults:
|
||||
run:
|
||||
# fail-fast using bash -eo pipefail. See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference
|
||||
shell: bash
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
push_latest:
|
||||
runs-on: ubuntu-latest
|
||||
environment: Docker Hub
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
|
||||
|
||||
- name: Build fleetdm/wix
|
||||
run: make wix-docker
|
||||
|
||||
- name: Build fleetdm/bomutils
|
||||
run: make bomutils-docker
|
||||
|
||||
#
|
||||
# After fleetdm/wix and fleetdm/bomutils are built,
|
||||
# let's smoke test pkg/msi generation before pushing.
|
||||
#
|
||||
|
||||
- name: Install Go Dependencies
|
||||
run: make deps-go
|
||||
|
||||
- name: Build fleetctl
|
||||
run: make fleetctl
|
||||
|
||||
- name: Build MSI
|
||||
run: ./build/fleetctl package --type msi --enroll-secret=foo --fleet-url=https://localhost:8080
|
||||
|
||||
- name: Build PKG
|
||||
run: ./build/fleetctl package --type pkg --enroll-secret=foo --fleet-url=https://localhost:8080
|
||||
|
||||
#
|
||||
# Now push to production
|
||||
#
|
||||
|
||||
- name: Push fleetdm/bomutils to docker hub
|
||||
run: docker push fleetdm/bomutils:latest
|
||||
|
||||
- name: Push fleetdm/wix to docker hub
|
||||
run: docker push fleetdm/wix:latest
|
||||
10
.github/workflows/release-fleetd-base.yml
vendored
10
.github/workflows/release-fleetd-base.yml
vendored
|
|
@ -51,16 +51,16 @@ jobs:
|
|||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
|
||||
with:
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Check for fleetd component updates
|
||||
id: check-for-fleetd-component-updates
|
||||
run: |
|
||||
|
|
|
|||
60
.github/workflows/test-bulk-operations-dashboard-changes.yml
vendored
Normal file
60
.github/workflows/test-bulk-operations-dashboard-changes.yml
vendored
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
name: Test bulk operations dashboard changes
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- 'ee/bulk-operations-dashboard/**'
|
||||
- '.github/workflows/test-bulk-operations-dashboard-changes.yml'
|
||||
|
||||
# This allows a subsequently queued workflow run to interrupt previous runs
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id}}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build:
|
||||
permissions:
|
||||
contents: read
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [16.x]
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
# Set the Node.js version
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
|
||||
|
||||
# Now start building!
|
||||
# > …but first, get a little crazy for a sec and delete the top-level package.json file
|
||||
# > i.e. the one used by the Fleet server. This is because require() in node will go
|
||||
# > hunting in ancestral directories for missing dependencies, and since some of the
|
||||
# > bundled transpiler tasks sniff for package availability using require(), this trips
|
||||
# > up when it encounters another Node universe in the parent directory.
|
||||
- run: rm -rf package.json package-lock.json node_modules/
|
||||
# > Turns out there's a similar issue with how eslint plugins are looked up, so we
|
||||
# > delete the top level .eslintrc file too.
|
||||
- run: rm -f .eslintrc.js
|
||||
|
||||
# Get dependencies (including dev deps)
|
||||
- run: cd ee/bulk-operations-dashboard/ && npm install
|
||||
|
||||
# Run sanity checks
|
||||
- run: cd ee/bulk-operations-dashboard/ && npm test
|
||||
|
||||
# Compile assets
|
||||
- run: cd ee/bulk-operations-dashboard/ && npm run build-for-prod
|
||||
22
.github/workflows/test-db-changes.yml
vendored
22
.github/workflows/test-db-changes.yml
vendored
|
|
@ -10,7 +10,7 @@ on:
|
|||
paths:
|
||||
- '**.go'
|
||||
- 'server/datastore/mysql/schema.sql'
|
||||
- '.github/workflows/test-schema-changes.yml'
|
||||
- '.github/workflows/test-db-changes.yml'
|
||||
workflow_dispatch: # Manual
|
||||
|
||||
# This allows a subsequently queued workflow run to interrupt previous runs
|
||||
|
|
@ -35,18 +35,28 @@ jobs:
|
|||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ vars.GO_VERSION }}
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Start Infra Dependencies
|
||||
# Use & to background this
|
||||
run: docker-compose up -d mysql_test &
|
||||
run: docker compose up -d mysql_test &
|
||||
|
||||
- name: Wait for mysql
|
||||
run: |
|
||||
echo "waiting for mysql..."
|
||||
until docker compose exec -T mysql_test sh -c "mysql -uroot -p\"\${MYSQL_ROOT_PASSWORD}\" -e \"SELECT 1=1\" fleet" &> /dev/null; do
|
||||
echo "."
|
||||
sleep 1
|
||||
done
|
||||
echo "mysql is ready"
|
||||
|
||||
- name: Verify test schema changes
|
||||
run: |
|
||||
|
|
|
|||
3
.github/workflows/test-fleetd-chrome.yml
vendored
3
.github/workflows/test-fleetd-chrome.yml
vendored
|
|
@ -66,7 +66,8 @@ jobs:
|
|||
npm test
|
||||
|
||||
- name: Upload to Codecov
|
||||
uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1
|
||||
uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5.0
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
directory: ./ee/fleetd-chrome/coverage
|
||||
flags: fleetd-chrome
|
||||
|
|
|
|||
65
.github/workflows/test-go.yaml
vendored
65
.github/workflows/test-go.yaml
vendored
|
|
@ -44,8 +44,7 @@ jobs:
|
|||
matrix:
|
||||
suite: ["integration", "core"]
|
||||
os: [ubuntu-latest]
|
||||
go-version: ['${{ vars.GO_VERSION }}']
|
||||
mysql: ["mysql:8.0.36"]
|
||||
mysql: ["mysql:8.0.36", "mysql:8.4.2"] # make sure to update supported versions docs when this changes
|
||||
continue-on-error: ${{ matrix.suite == 'integration' }} # Since integration tests have a higher chance of failing, often for unrelated reasons, we don't want to fail the whole job if they fail
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
|
|
@ -59,18 +58,18 @@ jobs:
|
|||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ matrix.go-version }}
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
|
||||
with:
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
# Pre-starting dependencies here means they are ready to go when we need them.
|
||||
- name: Start Infra Dependencies
|
||||
# Use & to background this
|
||||
run: FLEET_MYSQL_IMAGE=${{ matrix.mysql }} docker-compose -f docker-compose.yml -f docker-compose-redis-cluster.yml up -d mysql_test mysql_replica_test redis redis-cluster-1 redis-cluster-2 redis-cluster-3 redis-cluster-4 redis-cluster-5 redis-cluster-6 redis-cluster-setup minio saml_idp mailhog mailpit smtp4dev_test &
|
||||
run: FLEET_MYSQL_IMAGE=${{ matrix.mysql }} docker compose -f docker-compose.yml -f docker-compose-redis-cluster.yml up -d mysql_test mysql_replica_test redis redis-cluster-1 redis-cluster-2 redis-cluster-3 redis-cluster-4 redis-cluster-5 redis-cluster-6 redis-cluster-setup minio saml_idp mailhog mailpit smtp4dev_test &
|
||||
|
||||
- name: Add TLS certificate for SMTP Tests
|
||||
run: |
|
||||
|
|
@ -98,13 +97,13 @@ jobs:
|
|||
- name: Wait for mysql
|
||||
run: |
|
||||
echo "waiting for mysql..."
|
||||
until docker-compose exec -T mysql_test sh -c "mysql -uroot -p\"\${MYSQL_ROOT_PASSWORD}\" -e \"SELECT 1=1\" fleet" &> /dev/null; do
|
||||
until docker compose exec -T mysql_test sh -c "mysql -uroot -p\"\${MYSQL_ROOT_PASSWORD}\" -e \"SELECT 1=1\" fleet" &> /dev/null; do
|
||||
echo "."
|
||||
sleep 1
|
||||
done
|
||||
echo "mysql is ready"
|
||||
echo "waiting for mysql replica..."
|
||||
until docker-compose exec -T mysql_replica_test sh -c "mysql -uroot -p\"\${MYSQL_ROOT_PASSWORD}\" -e \"SELECT 1=1\" fleet" &> /dev/null; do
|
||||
until docker compose exec -T mysql_replica_test sh -c "mysql -uroot -p\"\${MYSQL_ROOT_PASSWORD}\" -e \"SELECT 1=1\" fleet" &> /dev/null; do
|
||||
echo "."
|
||||
sleep 1
|
||||
done
|
||||
|
|
@ -119,7 +118,6 @@ jobs:
|
|||
else
|
||||
RUN_TESTS_ARG=''
|
||||
fi
|
||||
|
||||
GO_TEST_EXTRA_FLAGS="-v -race=$RACE_ENABLED -timeout=$GO_TEST_TIMEOUT $RUN_TESTS_ARG" \
|
||||
TEST_LOCK_FILE_PATH=$(pwd)/lock \
|
||||
NETWORK_TEST=1 \
|
||||
|
|
@ -132,13 +130,17 @@ jobs:
|
|||
NETWORK_TEST_GITHUB_TOKEN=${{ secrets.FLEET_RELEASE_GITHUB_PAT }} \
|
||||
make test-go 2>&1 | tee /tmp/gotest.log
|
||||
|
||||
# note: it's fine to upload multiple reports (one per matrix combination)
|
||||
# for the same run, see https://docs.codecov.com/docs/merging-reports
|
||||
- name: Upload to Codecov
|
||||
uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70
|
||||
- name: Create mysql identifier without colon
|
||||
if: always()
|
||||
run: |
|
||||
echo "MATRIX_MYSQL_ID=$(echo ${{ matrix.mysql }} | tr -d ':')" >> $GITHUB_ENV
|
||||
|
||||
- name: Save coverage
|
||||
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
|
||||
with:
|
||||
files: coverage.txt
|
||||
flags: backend
|
||||
name: ${{ matrix.suite }}-${{ env.MATRIX_MYSQL_ID }}-coverage
|
||||
path: ./coverage.txt
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Generate summary of errors
|
||||
if: failure()
|
||||
|
|
@ -156,10 +158,6 @@ jobs:
|
|||
fi
|
||||
GO_FAIL_SUMMARY=$GO_FAIL_SUMMARY envsubst < .github/workflows/config/slack_payload_template.json > ./payload.json
|
||||
|
||||
# TODO: figure out a sane way to combine outputs from different matrix jobs
|
||||
# into a single slack notification, instead of sending one per job. This
|
||||
# problem already existed but now it's accentuated because we're running 4
|
||||
# jobs.
|
||||
- name: Slack Notification
|
||||
if: github.event.schedule == '0 4 * * *' && failure()
|
||||
uses: slackapi/slack-github-action@e28cf165c92ffef168d23c5c9000cffc8a25e117 # v1.24.0
|
||||
|
|
@ -174,15 +172,32 @@ jobs:
|
|||
|
||||
- name: Upload test log
|
||||
if: always()
|
||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v2
|
||||
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
|
||||
with:
|
||||
name: test-log
|
||||
name: ${{ matrix.suite }}-${{ env.MATRIX_MYSQL_ID }}-test-log
|
||||
path: /tmp/gotest.log
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload summary test log
|
||||
if: always()
|
||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v2
|
||||
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
|
||||
with:
|
||||
name: summary-test-log
|
||||
name: ${{ matrix.suite }}-${{ env.MATRIX_MYSQL_ID }}-summary-test-log
|
||||
path: /tmp/summary.txt
|
||||
|
||||
# We upload all backend coverage in one step so that we're less like to end up in a situation with a partial coverage report.
|
||||
upload-coverage:
|
||||
needs: [test-go]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@9c19ed7fe5d278cd354c7dfd5d3b88589c7e2395 # v4.1.6
|
||||
with:
|
||||
pattern: '*-coverage'
|
||||
- name: Upload to Codecov
|
||||
uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5.0
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
flags: backend
|
||||
|
|
|
|||
3
.github/workflows/test-js.yml
vendored
3
.github/workflows/test-js.yml
vendored
|
|
@ -69,8 +69,9 @@ jobs:
|
|||
yarn test:ci
|
||||
|
||||
- name: Upload to Codecov
|
||||
uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70
|
||||
uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5.0
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
flags: frontend
|
||||
|
||||
lint-js:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# This workflow tests packaging of Fleet-osquery with the
|
||||
# This workflow tests generation of fleetd packages with the
|
||||
# `fleetdm/fleetctl` Docker image.
|
||||
name: Test native tooling packaging
|
||||
|
||||
|
|
@ -21,6 +21,8 @@ on:
|
|||
- 'tools/bomutils-docker/**'
|
||||
- '.github/workflows/test-native-tooling-packaging.yml'
|
||||
workflow_dispatch: # Manual
|
||||
schedule:
|
||||
- cron: "0 5 * * *"
|
||||
|
||||
# This allows a subsequently queued workflow run to interrupt previous runs
|
||||
concurrency:
|
||||
|
|
@ -41,7 +43,12 @@ jobs:
|
|||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
go-version: ['${{ vars.GO_VERSION }}']
|
||||
# build_type == 'remote' means this job will test the fleetdm/fleetctl:latest from Docker Hub.
|
||||
# build_type == 'local' means this job will build the the image locally.
|
||||
#
|
||||
# TODO(lucas): We should only run 'remote' on schedule
|
||||
# (adding conditionals to 'matrix' requires many tricks).
|
||||
build_type: ["remote", "local"]
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
|
|
@ -50,18 +57,30 @@ jobs:
|
|||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ matrix.go-version }}
|
||||
|
||||
- name: Checkout Code
|
||||
if: ${{ matrix.build_type == 'local' }}
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Install Go
|
||||
if: ${{ matrix.build_type == 'local' }}
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Install Go Dependencies
|
||||
if: ${{ matrix.build_type == 'local' }}
|
||||
run: make deps-go
|
||||
|
||||
- name: Build fleetdm/wix
|
||||
if: ${{ matrix.build_type == 'local' }}
|
||||
run: make wix-docker
|
||||
|
||||
- name: Build fleetdm/bomutils
|
||||
if: ${{ matrix.build_type == 'local' }}
|
||||
run: make bomutils-docker
|
||||
|
||||
- name: Build fleetdm/fleetctl
|
||||
if: ${{ matrix.build_type == 'local' }}
|
||||
run: make fleetctl-docker
|
||||
|
||||
- name: Build DEB
|
||||
|
|
@ -87,3 +106,24 @@ jobs:
|
|||
|
||||
- name: Build PKG with Fleet Desktop
|
||||
run: docker run -v "$(pwd):/build" fleetdm/fleetctl package --type pkg --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop
|
||||
|
||||
- name: Slack Notification
|
||||
if: github.event.schedule == '0 5 * * *' && failure()
|
||||
uses: slackapi/slack-github-action@e28cf165c92ffef168d23c5c9000cffc8a25e117 # v1.24.0
|
||||
with:
|
||||
payload: |
|
||||
{
|
||||
"text": "${{ job.status }}\n${{ github.event.pull_request.html_url || github.event.head.html_url }}",
|
||||
"blocks": [
|
||||
{
|
||||
"type": "section",
|
||||
"text": {
|
||||
"type": "mrkdwn",
|
||||
"text": "⚠️ Tests on fleetdm/fleetctl docker image failed.\nhttps://github.com/fleetdm/fleet/actions/runs/${{ github.run_id }}"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
env:
|
||||
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_G_HELP_ENGINEERING_WEBHOOK_URL }}
|
||||
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
|
||||
|
|
|
|||
94
.github/workflows/test-packaging-build-docker-deps.yml
vendored
Normal file
94
.github/workflows/test-packaging-build-docker-deps.yml
vendored
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
# This workflow tests packaging of fleetd with the
|
||||
# `fleetctl package` command using locally built fleetdm/wix and fleetdm/bomutils images.
|
||||
#
|
||||
# It fetches the targets: orbit, osquery and fleet-desktop from the default
|
||||
# (Fleet's) TUF server, https://tuf.fleetctl.com.
|
||||
name: Test packaging with local fleetdm/wix and fleetdm/bomutils
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- patch-*
|
||||
- prepare-*
|
||||
paths:
|
||||
- "tools/bomutils-docker/**"
|
||||
- "tools/wix-docker/**"
|
||||
- ".github/workflows/test-packaging-build-docker-deps.yml"
|
||||
pull_request:
|
||||
paths:
|
||||
- "tools/bomutils-docker/**"
|
||||
- "tools/wix-docker/**"
|
||||
- ".github/workflows/test-packaging-build-docker-deps.yml"
|
||||
workflow_dispatch: # Manual
|
||||
|
||||
# This allows a subsequently queued workflow run to interrupt previous runs
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id}}
|
||||
cancel-in-progress: true
|
||||
|
||||
defaults:
|
||||
run:
|
||||
# fail-fast using bash -eo pipefail. See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference
|
||||
shell: bash
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
test-packaging:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
|
||||
- name: Install Go Dependencies
|
||||
run: make deps-go
|
||||
|
||||
- name: Build fleetctl
|
||||
run: make fleetctl
|
||||
|
||||
- name: Build fleetdm/wix
|
||||
run: make wix-docker
|
||||
|
||||
- name: Build fleetdm/bomutils
|
||||
run: make bomutils-docker
|
||||
|
||||
- name: Build DEB
|
||||
run: ./build/fleetctl package --type deb --enroll-secret=foo --fleet-url=https://localhost:8080
|
||||
|
||||
- name: Build DEB with Fleet Desktop
|
||||
run: ./build/fleetctl package --type deb --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop
|
||||
|
||||
- name: Build RPM
|
||||
run: ./build/fleetctl package --type rpm --enroll-secret=foo --fleet-url=https://localhost:8080
|
||||
|
||||
- name: Build RPM with Fleet Desktop
|
||||
run: ./build/fleetctl package --type rpm --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop
|
||||
|
||||
- name: Build MSI
|
||||
run: ./build/fleetctl package --type msi --enroll-secret=foo --fleet-url=https://localhost:8080
|
||||
|
||||
- name: Build MSI with Fleet Desktop
|
||||
run: ./build/fleetctl package --type msi --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop
|
||||
|
||||
- name: Build PKG
|
||||
run: ./build/fleetctl package --type pkg --enroll-secret=foo --fleet-url=https://localhost:8080
|
||||
|
||||
- name: Build PKG with Fleet Desktop
|
||||
run: ./build/fleetctl package --type pkg --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop
|
||||
133
.github/workflows/test-packaging.yml
vendored
133
.github/workflows/test-packaging.yml
vendored
|
|
@ -1,7 +1,8 @@
|
|||
# This workflow tests packaging of Fleet-osquery with the
|
||||
# `fleetctl package` command. It fetches the targets: orbit,
|
||||
# osquery and fleet-desktop from the default (Fleet's) TUF server,
|
||||
# https://tuf.fleetctl.com.
|
||||
# This workflow tests packaging of fleetd with the
|
||||
# `fleetctl package` command.
|
||||
#
|
||||
# It fetches the targets: orbit, osquery and fleet-desktop from the default
|
||||
# (Fleet's) TUF server, https://tuf.fleetctl.com.
|
||||
name: Test packaging
|
||||
|
||||
on:
|
||||
|
|
@ -47,81 +48,89 @@ jobs:
|
|||
# `macos-latest` uses arm64 by default now, so please be careful when
|
||||
# updating this version.
|
||||
os: [ubuntu-latest, macos-13]
|
||||
go-version: ['${{ vars.GO_VERSION }}']
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
|
||||
with:
|
||||
egress-policy: audit
|
||||
- name: Run Colima
|
||||
if: startsWith(matrix.os, 'macos')
|
||||
timeout-minutes: 15
|
||||
# notes:
|
||||
# - docker to install the docker CLI and interact with the Colima
|
||||
# container runtime
|
||||
# - colima is pre-installed in macos-12 runners, but not in macos-13 or
|
||||
# macos-14 runners
|
||||
run: |
|
||||
brew install docker
|
||||
# The runners come with an old version of python@3.12 that fails to upgrade
|
||||
# when python gets pulled in as a dep through the chain
|
||||
# colima -> lima -> qemu -> glibc -> python@3.12
|
||||
# Force upgrade it for now, remove once the problem is fixed
|
||||
brew install --overwrite python@3.12
|
||||
brew install colima
|
||||
colima start --mount $TMPDIR:w
|
||||
|
||||
- name: Pull fleetdm/wix
|
||||
# Run in background while other steps complete to speed up the workflow
|
||||
run: docker pull fleetdm/wix:latest &
|
||||
- name: Pull fleetdm/wix
|
||||
# Run in background while other steps complete to speed up the workflow
|
||||
run: docker pull fleetdm/wix:latest
|
||||
|
||||
- name: Run Colima
|
||||
if: startsWith(matrix.os, 'macos')
|
||||
timeout-minutes: 10
|
||||
# notes:
|
||||
# - docker to install the docker CLI and interact with the Colima
|
||||
# container runtime
|
||||
# - colima is pre-installed in macos-12 runners, but not in macos-13 or
|
||||
# macos-14 runners
|
||||
run: |
|
||||
brew install docker colima
|
||||
colima start --mount $TMPDIR:w
|
||||
- name: Pull fleetdm/bomutils
|
||||
# Run in background while other steps complete to speed up the workflow
|
||||
run: docker pull fleetdm/bomutils:latest
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ matrix.go-version }}
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
|
||||
- name: Install wine and wix
|
||||
if: startsWith(matrix.os, 'macos')
|
||||
run: |
|
||||
./scripts/macos-install-wine.sh -n
|
||||
wget https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip -nv -O wix.zip
|
||||
mkdir wix
|
||||
unzip wix.zip -d wix
|
||||
rm -f wix.zip
|
||||
echo wix installed at $(pwd)/wix
|
||||
- name: Install wine and wix
|
||||
if: startsWith(matrix.os, 'macos')
|
||||
run: |
|
||||
./scripts/macos-install-wine.sh -n
|
||||
wget https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip -nv -O wix.zip
|
||||
mkdir wix
|
||||
unzip wix.zip -d wix
|
||||
rm -f wix.zip
|
||||
echo wix installed at $(pwd)/wix
|
||||
|
||||
# It seems faster not to cache Go dependencies
|
||||
- name: Install Go Dependencies
|
||||
run: make deps-go
|
||||
# It seems faster not to cache Go dependencies
|
||||
- name: Install Go Dependencies
|
||||
run: make deps-go
|
||||
|
||||
- name: Build fleetctl
|
||||
run: make fleetctl
|
||||
- name: Build fleetctl
|
||||
run: make fleetctl
|
||||
|
||||
- name: Build DEB
|
||||
run: ./build/fleetctl package --type deb --enroll-secret=foo --fleet-url=https://localhost:8080
|
||||
- name: Build DEB
|
||||
run: ./build/fleetctl package --type deb --enroll-secret=foo --fleet-url=https://localhost:8080
|
||||
|
||||
- name: Build DEB with Fleet Desktop
|
||||
run: ./build/fleetctl package --type deb --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop
|
||||
- name: Build DEB with Fleet Desktop
|
||||
run: ./build/fleetctl package --type deb --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop
|
||||
|
||||
- name: Build RPM
|
||||
run: ./build/fleetctl package --type rpm --enroll-secret=foo --fleet-url=https://localhost:8080
|
||||
- name: Build RPM
|
||||
run: ./build/fleetctl package --type rpm --enroll-secret=foo --fleet-url=https://localhost:8080
|
||||
|
||||
- name: Build RPM with Fleet Desktop
|
||||
run: ./build/fleetctl package --type rpm --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop
|
||||
- name: Build RPM with Fleet Desktop
|
||||
run: ./build/fleetctl package --type rpm --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop
|
||||
|
||||
- name: Build MSI
|
||||
run: ./build/fleetctl package --type msi --enroll-secret=foo --fleet-url=https://localhost:8080
|
||||
- name: Build MSI
|
||||
run: ./build/fleetctl package --type msi --enroll-secret=foo --fleet-url=https://localhost:8080
|
||||
|
||||
- name: Build MSI with Fleet Desktop
|
||||
run: ./build/fleetctl package --type msi --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop
|
||||
- name: Build MSI with Fleet Desktop
|
||||
run: ./build/fleetctl package --type msi --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop
|
||||
|
||||
- name: Build PKG
|
||||
run: ./build/fleetctl package --type pkg --enroll-secret=foo --fleet-url=https://localhost:8080
|
||||
- name: Build PKG
|
||||
run: ./build/fleetctl package --type pkg --enroll-secret=foo --fleet-url=https://localhost:8080
|
||||
|
||||
- name: Build PKG with Fleet Desktop
|
||||
run: ./build/fleetctl package --type pkg --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop
|
||||
- name: Build PKG with Fleet Desktop
|
||||
run: ./build/fleetctl package --type pkg --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop
|
||||
|
||||
- name: Build MSI (using local Wix)
|
||||
if: startsWith(matrix.os, 'macos')
|
||||
run: ./build/fleetctl package --type msi --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop --local-wix-dir ./wix
|
||||
- name: Build MSI (using local Wix)
|
||||
if: startsWith(matrix.os, 'macos')
|
||||
run: ./build/fleetctl package --type msi --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop --local-wix-dir ./wix
|
||||
|
|
|
|||
9
.github/workflows/test-yml-specs.yml
vendored
9
.github/workflows/test-yml-specs.yml
vendored
|
|
@ -33,7 +33,6 @@ jobs:
|
|||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
go-version: ['${{ vars.GO_VERSION }}']
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
|
|
@ -42,13 +41,13 @@ jobs:
|
|||
with:
|
||||
egress-policy: audit
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: ${{ matrix.go-version }}
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Run apply spec tests
|
||||
run: |
|
||||
|
|
|
|||
15
.vscode/launch.json
vendored
15
.vscode/launch.json
vendored
|
|
@ -61,6 +61,21 @@
|
|||
"--dev_license"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Fleet vuln_processing (licensed)",
|
||||
"type": "go",
|
||||
"request": "launch",
|
||||
"mode": "auto",
|
||||
"buildFlags": "-tags='full,fts5'",
|
||||
"cwd": "${workspaceFolder}",
|
||||
"program": "${workspaceFolder}/cmd/fleet",
|
||||
"args": [
|
||||
"vuln_processing",
|
||||
"--dev",
|
||||
"--logging_debug",
|
||||
"--dev_license",
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Attach to a running Fleet server",
|
||||
"type": "go",
|
||||
|
|
|
|||
|
|
@ -1,2 +0,0 @@
|
|||
- Fix a bug where the manage query automations modal would lose its state when the user clicks
|
||||
"Preview data"
|
||||
201
CHANGELOG.md
201
CHANGELOG.md
|
|
@ -1,13 +1,174 @@
|
|||
## Fleet 4.56.0 (Sep 7, 2024)
|
||||
|
||||
### Endpoint operations
|
||||
|
||||
- Added index to `query_results` DB table to speed up finding last query timestamp for a given query and host.
|
||||
- Added a link in the UI to the error message when a CSR can't be downloaded due to missing private key.
|
||||
- Added a disabled overlay to the Other Workflows modal on the policy page.
|
||||
- Improved performance of live queries to accommodate for higher volumes when utilizing zero-trust workflows.
|
||||
- Improved `fleetctl` gitops error message when trying to change team name to a team that already exists.
|
||||
|
||||
### Device management
|
||||
|
||||
- Added server support for multiple VPP tokens.
|
||||
- Added new endpoints and updated existing endpoints for managing multiple Apple Business Manager tokens.
|
||||
- Added support for S3 to store MDM bootstrap packages (uses the same bucket configuration as for software installers).
|
||||
- Added support to UI for self service VPP software.
|
||||
- Added backend and gitops support for self service VPP.
|
||||
- Added ability for MDM migrations if the host is manually enrolled to a 3rd party MDM.
|
||||
- Added an offline screen to the macOS MDM migration flow.
|
||||
- Added new ABM page to Fleet UI.
|
||||
- Added new VPP page to the fleet UI
|
||||
- Added support to track the Apple Business Manager "terms expired" API error per token, as well as a global flag that gets set as soon as one token has its terms expired.
|
||||
- Updated the instructions on "My device" for MDM migrations on pre-Sonoma macOS hosts.
|
||||
- Updated to allow multiple teams to be assigned to the same VPP Token.
|
||||
- Updated process so that deleting installed software or VPP app now makes it available for re-installation.
|
||||
- Updated to enforce minimum OS version settings during Apple Automated Device Enrollment (ADE).
|
||||
- Updated ABM ingestion so that deleted iOS/iPadOS host will continue to report to Fleet as long as host is in Apple Business Manager (ABM).
|
||||
- Updated so that refetching an offline iOS/iPadOS host will not add new MDM commands to the queue if previous refetch has not completed yet.
|
||||
- Updated UI so that downloading a software installer package now shows the browser's built-in progress bar.
|
||||
- Updated relevant documentation to include references to multiple ABM and VPP tokens.
|
||||
- Consolidated Automatic Enrollment and VPP settings under the MDM settings integration page.
|
||||
- Cleared apps associated with a VPP token if it's moved off of a team.
|
||||
|
||||
### Vulnerability management
|
||||
|
||||
- Added ALAS bulletins as vulnerability source for Amazon Linux (instead of OVAL for Amazon Linux 2, and adds support for Amazon Linux 1, 2022, and 2023).
|
||||
- Added matching rules for July and August Microsoft 365 security updates (https://learn.microsoft.com/en-us/officeupdates/microsoft365-apps-security-updates).
|
||||
- Added the following filters to `/software/titles` and `/software/versions` API endpoints: `exploit: bool`, `min_cvss_score: float`, `max_cvss_score: float`.
|
||||
- Updated software titles/versions tables to allow for filtering by vulnerabilities including severity and known exploit.
|
||||
- Updated to use empty CVE description when the NVD CVE feed doesn't include description entries (instead of panicking).
|
||||
- Updated matching software that is not installed by Fleet so that it shows up as 'Available for install' on host details page.
|
||||
- Updated base images of `fleetdm/fleetctl`, `fleetdm/bomutils` and `fleetdm/wix` to fix critical vulnerabilities found by Trivy.
|
||||
- Updated vulnerability scanning to use `macos` SW target for CPEs of homebrew packages.
|
||||
- Updated vulnerability scanning to not ignore software with non-ASCII en dash and em dash characters.
|
||||
- Updated `GET /api/v1/fleet/vulnerabilities/{cve}` endpoint to add validation of CVE format, and a 204 response. The 204 response indicates that the vulnerability is known to Fleet but not present on any hosts.
|
||||
- Updated the UI to add new empty states for searching vulnerabilities: invalid CVE format searched, a known CVE serached but not present on hosts, not a known CVE searched, exploited vulnerability empty state, operating systems empty state, new icons.
|
||||
|
||||
### Bug fixes and improvements
|
||||
|
||||
- Added support for MySQL 8.4.2 LTS.
|
||||
- Updated Go to go1.22.6.
|
||||
- Updated Fleet server to now accept arguments via stdin. This is useful for passing secrets that you don't want to expose as env vars, in the command line, or in the config file.
|
||||
- Updated text for "Turn on MDM" banners in UI.
|
||||
- Updated ABM host tooltip copy on the manage host page to clarify when host vitals will be available to view.
|
||||
- Updated copy on auotmatic enrollment modal on my device page.
|
||||
- Updated host details activities tooltip and empty state copy to reflect recently added capabilities.
|
||||
- Updated Fleet Free so users see a Premium feature message when clicking to add software.
|
||||
- Updated usage reporting to report statistics on new AI features, maintenance window, and `fleetd`.
|
||||
- Fixed bug where configuration profile was still showing the old label name after the name was updated.
|
||||
- Fixed a bug when a cached prepared statement gets deleted in the MySQL server itself without Fleet knowing.
|
||||
- Fixed a bug where the wrong API path was used to download a software installer.
|
||||
- Fixed the failing_host_count so it is never 0. This count is normally updated once an hour during cleanups_then_aggregation cron job.
|
||||
- Fixed CVE-2024-4030 in Vulncheck feed incorrectly targeting non-Windows hosts.
|
||||
- Fixed a bug where the "Self-service" filter for the list of software and the list of host's software did not take App Store apps into account.
|
||||
- Fixed a bug where the "My device" page in Fleet Desktop did not show the self-service software tab when App Store apps were available as self-install.
|
||||
- Fixed a bug where a software installer (a package or a VPP app) that has been installed on a host still shows up as "Available for install" and can still be requested to be installed after the host is transferred to a different team without that installer (or after the installer is deleted).
|
||||
- Fixed the "Available for install" filter in the host's software page so that installers that were requested to be installed on the host (regardless of installation status) also show up in the list.
|
||||
- Fixed UI popup messages bleeding off viewport in some cases.
|
||||
- Fixed an issue with the scheduling of cron jobs at startup if the job has never run, which caused it to be delayed.
|
||||
- Fixed UI to display the label names in case-insensitive alphabetical order.
|
||||
|
||||
## Fleet 4.55.2 (Sep 05, 2024)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
- Removed validation of APNS certificate from server startup. This was no longer necessary because we now allow for APNS certificates to be renewed in the UI.
|
||||
- Fixed logic to properly catch and log APNs errors.
|
||||
|
||||
## Fleet 4.55.1 (Aug 15, 2024)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
- Added a disabled overlay to the Other Workflows modal on the policy page.
|
||||
- Updated text for "Turn on MDM" banners in UI.
|
||||
- Fixed a bug when a cached prepared statement got deleted in the MySQL server itself without Fleet knowing.
|
||||
- Continued with an empty CVE description when the NVD CVE feed didn't include description entries (instead of panicking).
|
||||
- Scheduled maintenance events are now scheduled over calendar events marked "Free" (not busy) in Google Calendar.
|
||||
- Fixed a bug where the wrong API path was used to download a software installer.
|
||||
- Improved fleetctl gitops error message when trying to change team name to a team that already exists.
|
||||
- Updated ABM (Apple Business Manager) host tooltip copy on the manage host page to clarify when host vitals will be available to view.
|
||||
- Added index to query_results DB table to speed up finding the last query timestamp for a given query and host.
|
||||
- Displayed the label names in case-insensitive alphabetical order in the fleet UI.
|
||||
|
||||
## Fleet 4.55.0 (Aug 8, 2024)
|
||||
|
||||
**NOTE:** Beginning with v4.55.0, Fleet no longer supports MySQL 5.7 because it has reached [end of life](https://mattermost.com/blog/mysql-5-7-reached-eol-upgrade-to-mysql-8-x-today/#:~:text=In%20October%202023%2C%20MySQL%205.7,to%20upgrade%20to%20MySQL%208.). The minimum version supported is MySQL 8.0.36.
|
||||
|
||||
### Endpoint Operations
|
||||
|
||||
- Added support for generating `fleetd` packages for Linux ARM64.
|
||||
- Added new `fleetctl package` --arch flag.
|
||||
- Updated `fleetctl package` command to remove the `--version` flag. The version of the package can be controlled by `--orbit-channel` flag.
|
||||
- Updated maintenance window descriptions to update regularly to match the failing policy description/resolution.
|
||||
- Updated maintenance windows using Google Calendar so that calendar events are now recreated within 30 seconds if deleted or moved to the past.
|
||||
- Fleet server watches for potential changes for up to 1 week after original event time. If event is moved forward more than 1 week, then after 1 week Fleet server will check for event changes once every 30 minutes.
|
||||
- **NOTE:** These near real-time updates may add additional load to the Google Calendar API, so it is recommended to use API usage alerts or other monitoring methods.
|
||||
|
||||
### Device Management
|
||||
|
||||
- Integrated [Escrow Buddy](https://github.com/macadmins/escrow-buddy) to add enforcement of FileVault during the MacOS Setup Assistant process for hosts that are
|
||||
enrolled into teams (or no team) with disk encryption turned on. Thank you [homebysix](https://github.com/homebysix) and team!
|
||||
- Updated `fleetd` to use [Escrow Buddy](https://github.com/macadmins/escrow-buddy) to rotate FileVault keys. Removed or modified internal API endpoints documented in the API for contributors.
|
||||
- Added OS updates support to iOS/iPadOS devices.
|
||||
- Added iOS and iPadOS device details refetch triggered with the existing `POST /api/latest/fleet/hosts/:id/refetch` endpoint.
|
||||
- Added iOS and iPadOS user-installed apps to Fleet.
|
||||
- Added iOS and iPadOS apps to be installed using Apple's VPP (Volume Purchase Program) to Fleet.
|
||||
- Added support for VPP to GitOps.
|
||||
- Added the `POST /mdm/apple/vpp_token`, `DELETE /mdm/apple/vpp_token` and `GET /vpp` endpoints and related functionality.
|
||||
- Added new `GET /software/app_store_apps` and `POST /software/app_store_apps` endpoints and associated functionality.
|
||||
- Added the associated VPP apps to the `GET /software/titles` and `GET /software/titles/:id` endpoints.
|
||||
- Added the associated VPP apps to the `GET /hosts/:id/software` and `GET /device/:token/software` endpoints.
|
||||
- Added support to delete a VPP app from a team in `DELETE /software/titles/:software_title_id/available_for_install`.
|
||||
- Added `exclude_software` query parameter to "Get host by identifier" API.
|
||||
- Added ability to add/remove/disable apps with VPP in the Fleet UI.
|
||||
- Added a warning banner to the UI if the uploaded VPP token is about to expire/has expired.
|
||||
- Added UI updates for VPP feature on host software and my device pages.
|
||||
- Added global activity support for VPP-related activities.
|
||||
- Added UI features for managing VPP apps for iPadOS and iOS hosts.
|
||||
- Updated profile activities to include iOS and iPadOS.
|
||||
- Updated Fleet UI to show OS version compliance on host details page.
|
||||
- Added support for "No teams" on all software pages including adding software installers.
|
||||
- Added DB migration to support VPP software features.
|
||||
- Added DB migration to migrate older team configurations to the new version that includes both installers and App Store apps.
|
||||
- Linux lock/unlock scripts now make use of pam_nologin to keep AD users locked out.
|
||||
- Installed software list now includes Linux .deb packages that are 'on hold'.
|
||||
- Added a special-case to properly name the Notion .exe Windows installer the same as how it will be reported by osquery post-install.
|
||||
- Increased threshold to renew Apple SCEP certificates for MDM enrollments to 180 days.
|
||||
|
||||
### Vulnerability Management
|
||||
|
||||
- Fixed CVEs identified as 'Rejected' in NVD not matching against software.
|
||||
- Fixed false negative vulnerabilities with IntelliJ IDEA CE and PyCharm CE installed via Homebrew.
|
||||
|
||||
### Bug fixes and improvements
|
||||
|
||||
- Dropped support for MySQL 5.7 and raised minimum required to MySQL 8.0.36.
|
||||
- Updated software pre-install to use new GitOps format for query.
|
||||
- Updated UI tooltips for pending OS settings.
|
||||
- Fixed a styling issue in the controls > OS settings > disk encryption table.
|
||||
- Fixed a bug in `fleetctl preview` that was causing it to fail if Docker was installed without support for the deprecated `docker-compose` CLI.
|
||||
- Fixed an issue where the app-wide warning banners were not showing on the initial page load.
|
||||
- Fixed a bug where the hosts page would sometimes allow excess pagination.
|
||||
- Fixed a bug where software install results could not be retrieved for deleted hosts in the activity feed.
|
||||
- Fixed path that was incorrect for the download software installer package endpoint `GET /software/titles/:software_title_id/package`.
|
||||
- Fixed a bug that set `last_enrolled_at` during orbit re-enrollment, which caused osquery enroll failures when `FLEET_OSQUERY_ENROLL_COOLDOWN` is set.
|
||||
- Fixed a bug where Fleet google calendar events generated by Fleet <= 4.53.0 were not correctly processed by 4.54.0.
|
||||
- Fixed a bug where software install results could not be retrieved for deleted hosts in the activity feed.
|
||||
- Fixed a bug where a software installer (a package or a VPP app) that has been installed on a host still shows up as "Available for install" and can still be requested to be installed after the host is transferred to a different team without that installer (or after the installer is deleted).
|
||||
|
||||
## Fleet 4.54.1 (Jul 24, 2024)
|
||||
|
||||
### Bug fixes
|
||||
* Fixed a startup bug by performing an early restart of orbit if an agent options setting has changed.
|
||||
* Implemented a small refactor of orbit subsystems.
|
||||
* Removed the `--version` flag from the `fleetctl package` command. The version of the package can now be controlled by the `--orbit-channel` flag.
|
||||
* Fixed a bug that set `last_enrolled_at` during orbit re-enrollment, which caused osquery enroll failures when `FLEET_OSQUERY_ENROLL_COOLDOWN` is set .
|
||||
* In `fleetctl package` command, removed the `--version` flag. The version of the package can be controlled by `--orbit-channel` flag.
|
||||
* Fixed a bug where Fleet google calendar events generated by Fleet <= 4.53.0 were not correctly processed by 4.54.0.
|
||||
* Re-enabled cached logins after windows Unlock.
|
||||
|
||||
- Fixed a startup bug by performing an early restart of orbit if an agent options setting has changed.
|
||||
- Implemented a small refactor of orbit subsystems.
|
||||
- Removed the `--version` flag from the `fleetctl package` command. The version of the package can now be controlled by the `--orbit-channel` flag.
|
||||
- Fixed a bug that set `last_enrolled_at` during orbit re-enrollment, which caused osquery enroll failures when `FLEET_OSQUERY_ENROLL_COOLDOWN` is set .
|
||||
- In `fleetctl package` command, removed the `--version` flag. The version of the package can be controlled by `--orbit-channel` flag.
|
||||
- Fixed a bug where Fleet google calendar events generated by Fleet <= 4.53.0 were not correctly processed by 4.54.0.
|
||||
- Re-enabled cached logins after windows Unlock.
|
||||
|
||||
## Fleet 4.54.0 (Jul 17, 2024)
|
||||
|
||||
### Endpoint Operations
|
||||
|
|
@ -93,19 +254,19 @@
|
|||
|
||||
### Bug fixes
|
||||
|
||||
* Updated fleetctl get queries/labels/hosts descriptions.
|
||||
* Fixed exporting CSVs with fields that contain commas to render properly.
|
||||
* Fixed link to fleetd uninstall instructions in "Delete device" modal.
|
||||
* Rendered only one banner on the my device page based on priority order.
|
||||
* Hidden query delete checkboxes from team observers.
|
||||
* Fixed issue where the Fleet UI could not be used to renew the ABM token after the ABM user who created the token was deleted.
|
||||
* Fixed an issue where special characters in HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall broke the "installer_utils.ps1 -uninstallOrbit" step in the Windows MSI installer.
|
||||
* Fixed counts for hosts with low disk space in summary page.
|
||||
* Fleet UI fixes: Hide CTA on inherited queries/policies from team level users.
|
||||
* Updated software updated timestamp tooltip.
|
||||
* Fixed issue where some Windows applications were getting matched against Windows OS vulnerabilities.
|
||||
* Fixed crash in `fleetd` installer on Windows if there are registry keys with special characters on the system.
|
||||
* Fixed UI capitalizations.
|
||||
- Updated fleetctl get queries/labels/hosts descriptions.
|
||||
- Fixed exporting CSVs with fields that contain commas to render properly.
|
||||
- Fixed link to fleetd uninstall instructions in "Delete device" modal.
|
||||
- Rendered only one banner on the my device page based on priority order.
|
||||
- Hidden query delete checkboxes from team observers.
|
||||
- Fixed issue where the Fleet UI could not be used to renew the ABM token after the ABM user who created the token was deleted.
|
||||
- Fixed an issue where special characters in HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall broke the "installer_utils.ps1 -uninstallOrbit" step in the Windows MSI installer.
|
||||
- Fixed counts for hosts with low disk space in summary page.
|
||||
- Fleet UI fixes: Hide CTA on inherited queries/policies from team level users.
|
||||
- Updated software updated timestamp tooltip.
|
||||
- Fixed issue where some Windows applications were getting matched against Windows OS vulnerabilities.
|
||||
- Fixed crash in `fleetd` installer on Windows if there are registry keys with special characters on the system.
|
||||
- Fixed UI capitalizations.
|
||||
|
||||
## Fleet 4.53.0 (Jun 25, 2024)
|
||||
|
||||
|
|
|
|||
76
CODEOWNERS
76
CODEOWNERS
|
|
@ -39,19 +39,9 @@
|
|||
go.sum @fleetdm/go
|
||||
go.mod @fleetdm/go
|
||||
/cmd/ @fleetdm/go
|
||||
/orbit/ @lucasmrod @getvictor @roperzh @gillespi314
|
||||
/server/ @fleetdm/go
|
||||
/server/service/handler.go @lucasmrod @getvictor @roperzh @gillespi314
|
||||
/server/mdm/ @roperzh @gillespi314 @lucasmrod @georgekarrv
|
||||
/server/worker/ @lucasmrod @getvictor @roperzh @gillespi314
|
||||
/server/vulnerabilities/ @lucasmrod @mostlikelee @getvictor
|
||||
/server/cron/ @getvictor @lucasmrod @roperzh @mostlikelee
|
||||
/ee/fleetd-chrome @lucasmrod @getvictor @RachelElysia
|
||||
/ee/vulnerability-dashboard @eashaw
|
||||
/ee/cis @sharon-fdm @lucasmrod @RachelElysia @jacobshandling
|
||||
/ee/server/calendar @lucasmrod @getvictor @jacobshandling
|
||||
/ee/server/service @roperzh @gillespi314 @lucasmrod @getvictor
|
||||
/scripts/mdm @roperzh @gillespi314 @jahzielv @dantecatalfamo
|
||||
/ee/server/ @fleetdm/go
|
||||
/orbit/ @lucasmrod @roperzh @lukeheath @georgekarrv @sharon-fdm
|
||||
|
||||
##############################################################################################
|
||||
# 🚀 React files and other files related to the core product frontend.
|
||||
|
|
@ -66,9 +56,9 @@ go.mod @fleetdm/go
|
|||
# FUTURE: Look for a way to not have this notify every single person in this "github team".
|
||||
##############################################################################################
|
||||
|
||||
/infrastructure/ @rfairburn @ksatter @lukeheath @edwardsb @pacamaster @georgekarrv
|
||||
/charts/ @rfairburn @ksatter @lukeheath @edwardsb @pacamaster @georgekarrv
|
||||
/terraform/ @rfairburn @ksatter @lukeheath @edwardsb @pacamaster @georgekarrv
|
||||
/infrastructure/ @rfairburn @ksatter @lukeheath @edwardsb @georgekarrv
|
||||
/charts/ @rfairburn @ksatter @lukeheath @edwardsb @georgekarrv
|
||||
/terraform/ @rfairburn @ksatter @lukeheath @edwardsb @georgekarrv
|
||||
/it-and-security/ @noahtalerman @lukeheath @spokanemac @getvictor
|
||||
|
||||
##############################################################################################
|
||||
|
|
@ -76,8 +66,8 @@ go.mod @fleetdm/go
|
|||
#
|
||||
# (see website/config/custom.js for DRIs of other paths not listed here)
|
||||
##############################################################################################
|
||||
/docs @eashaw
|
||||
/docs/REST\ API/rest-api.md @lukeheath # « REST API reference documentation
|
||||
/docs @rachaelshaw @lukeheath
|
||||
/docs/REST\ API/rest-api.md @rachaelshaw @lukeheath # « REST API reference documentation
|
||||
/docs/Contributing/API-for-contributors.md @lukeheath # « Advanced / contributors-only API reference documentation
|
||||
/schema @eashaw # « Data tables (osquery/fleetd schema) documentation
|
||||
/docs/Deploy/_kubernetes/ @dherder # « Kubernetes best practice
|
||||
|
|
@ -105,13 +95,13 @@ go.mod @fleetdm/go
|
|||
/handbook/README.md @mikermcneil
|
||||
/handbook/company/open-positions.yml @sampfluger88
|
||||
/handbook/company/product-groups.md @lukeheath
|
||||
/handbook/business-operations/README.md @sampfluger88
|
||||
/handbook/business-operations/business-operations.rituals.yml @sampfluger88
|
||||
/handbook/business-operations/Application-security.md @lukeheath
|
||||
/handbook/business-operations/security-audits.md @lukeheath
|
||||
/handbook/business-operations/security-policies.md @lukeheath
|
||||
/handbook/business-operations/security.md @lukeheath
|
||||
/handbook/business-operations/vendor-questionnaires.md @lukeheath
|
||||
/handbook/finance/README.md @sampfluger88
|
||||
/handbook/finance/finance.rituals.yml @sampfluger88
|
||||
/handbook/digital-experience/application-security.md @lukeheath
|
||||
/handbook/digital-experience/security-audits.md @lukeheath
|
||||
/handbook/digital-experience/security-policies.md @lukeheath
|
||||
/handbook/digital-experience/security.md @lukeheath
|
||||
/handbook/digital-experience/vendor-questionnaires.md @lukeheath
|
||||
/handbook/digital-experience @sampfluger88
|
||||
/handbook/customer-success @sampfluger88
|
||||
/handbook/demand @sampfluger88
|
||||
|
|
@ -137,43 +127,7 @@ go.mod @fleetdm/go
|
|||
##############################################################################################
|
||||
# 🚀 GitHub workflows
|
||||
##############################################################################################
|
||||
/.github/workflows/README.md @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/goreleaser-fleet.yaml @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/update-certs.yml @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/codeql-analysis.yml @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/codeql.yml @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/scorecards-analysis.yml @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/integration.yml @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/fleetctl-preview.yml @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/fleetctl-preview-latest.yml @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/goreleaser-orbit.yaml @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/trivy-scan.yml @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/goreleaser-snapshot-fleet.yaml @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/build-and-push-fleetctl-docker.yml @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/fleetd-tuf.yml @lucasmrod @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/generate-desktop-targets.yml @lucasmrod @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/test-yml-specs.yml @lucasmrod @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/build-binaries.yaml @lucasmrod @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/fleet-and-orbit.yml @lucasmrod @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/build-orbit.yaml @lucasmrod @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/generate-osqueryd-targets.yml @lucasmrod @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/test-packaging.yml @lucasmrod @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/release-helm.yaml @rfairburn @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/pr-helm.yaml @rfairburn @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/tfvalidate.yml @rfairburn @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/dogfood-deploy.yml @rfairburn @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/test-db-changes.yml @roperzh @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/test-go.yaml @roperzh @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/golangci-lint.yml @roperzh @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/test-native-tooling-packaging.yml @roperzh @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/check-tuf-timestamps.yml @roperzh @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/test-puppet.yml @roperzh @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/generate-nudge-targets.yml @roperzh @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/test-js.yml @ghernandez345 @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/dogfood-gitops.yml @getvictor @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/test-fleetd-chrome.yml @getvictor @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/release-fleetd-chrome.yml @getvictor @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/release-fleetd-chrome-beta.yml @getvictor @lukeheath @georgekarrv @sharon-fdm
|
||||
/.github/workflows/ @lukeheath @georgekarrv @sharon-fdm
|
||||
|
||||
# ℹ️ But wait, there's more!
|
||||
# See the comments up top to learn where else DRIs and maintainers are configured.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
FROM --platform=linux/amd64 golang:1.22.4-bullseye@sha256:067c5c7fe6d79f900c5ebe8351166356d6e3bbfcc6f807030e89b9a929252273
|
||||
FROM --platform=linux/amd64 golang:1.23.1-bullseye@sha256:45b43371f21ec51276118e6806a22cbb0bca087ddd54c491fdc7149be01035d5
|
||||
LABEL maintainer="Fleet Developers"
|
||||
|
||||
RUN mkdir -p /usr/src/fleet
|
||||
|
|
|
|||
|
|
@ -1,16 +0,0 @@
|
|||
FROM golang:1.22.4-alpine3.20@sha256:ace6cc3fe58d0c7b12303c57afe6d6724851152df55e08057b43990b927ad5e8
|
||||
|
||||
ARG ENROLL_SECRET
|
||||
ARG HOST_COUNT
|
||||
ARG SERVER_URL
|
||||
|
||||
ENV ENROLL_SECRET ${ENROLL_SECRET}
|
||||
ENV HOST_COUNT ${HOST_COUNT}
|
||||
ENV SERVER_URL ${SERVER_URL}
|
||||
|
||||
COPY ./cmd/osquery-perf/agent.go ./go.mod ./go.sum ./cmd/osquery-perf/mac10.14.6.tmpl /osquery-perf/
|
||||
WORKDIR /osquery-perf/
|
||||
RUN go mod download
|
||||
RUN go build -o osquery-perf
|
||||
|
||||
CMD ./osquery-perf -enroll_secret $ENROLL_SECRET -host_count $HOST_COUNT -server_url $SERVER_URL
|
||||
13
Makefile
13
Makefile
|
|
@ -74,6 +74,7 @@ define HELP_TEXT
|
|||
make generate-go - Generate and bundle required go code
|
||||
make generate-js - Generate and bundle required js code
|
||||
make generate-dev - Generate and bundle required code in a watch loop
|
||||
make generate-doc - Generate updated API documentation for activities, osquery flags
|
||||
|
||||
make clean - Clean all build artifacts
|
||||
make clean-assets - Clean assets only
|
||||
|
|
@ -221,6 +222,12 @@ docker-push-release: docker-build-release
|
|||
fleetctl-docker: xp-fleetctl
|
||||
docker build -t fleetdm/fleetctl --platform=linux/amd64 -f tools/fleetctl-docker/Dockerfile .
|
||||
|
||||
bomutils-docker:
|
||||
cd tools/bomutils-docker && docker build -t fleetdm/bomutils --platform=linux/amd64 -f Dockerfile .
|
||||
|
||||
wix-docker:
|
||||
cd tools/wix-docker && docker build -t fleetdm/wix --platform=linux/amd64 -f Dockerfile .
|
||||
|
||||
.pre-binary-bundle:
|
||||
rm -rf build/binary-bundle
|
||||
mkdir -p build/binary-bundle/linux
|
||||
|
|
@ -281,7 +288,7 @@ binary-arch: .pre-binary-arch .pre-binary-bundle .pre-fleet
|
|||
|
||||
# Drop, create, and migrate the e2e test database
|
||||
e2e-reset-db:
|
||||
docker-compose exec -T mysql_test bash -c 'echo "drop database if exists e2e; create database e2e;" | MYSQL_PWD=toor mysql -uroot'
|
||||
docker compose exec -T mysql_test bash -c 'echo "drop database if exists e2e; create database e2e;" | MYSQL_PWD=toor mysql -uroot'
|
||||
./build/fleet prepare db --mysql_address=localhost:3307 --mysql_username=root --mysql_password=toor --mysql_database=e2e
|
||||
|
||||
e2e-setup:
|
||||
|
|
@ -312,7 +319,7 @@ e2e-serve-premium: e2e-reset-db
|
|||
# Usage:
|
||||
# make e2e-set-desktop-token host_id=1 token=foo
|
||||
e2e-set-desktop-token:
|
||||
docker-compose exec -T mysql_test bash -c 'echo "INSERT INTO e2e.host_device_auth (host_id, token) VALUES ($(host_id), \"$(token)\") ON DUPLICATE KEY UPDATE token=VALUES(token)" | MYSQL_PWD=toor mysql -uroot'
|
||||
docker compose exec -T mysql_test bash -c 'echo "INSERT INTO e2e.host_device_auth (host_id, token) VALUES ($(host_id), \"$(token)\") ON DUPLICATE KEY UPDATE token=VALUES(token)" | MYSQL_PWD=toor mysql -uroot'
|
||||
|
||||
changelog:
|
||||
sh -c "find changes -type f | grep -v .keep | xargs -I {} sh -c 'grep \"\S\" {}; echo' > new-CHANGELOG.md"
|
||||
|
|
@ -347,7 +354,7 @@ fleetd-tuf:
|
|||
|
||||
# Reset the development DB
|
||||
db-reset:
|
||||
docker-compose exec -T mysql bash -c 'echo "drop database if exists fleet; create database fleet;" | MYSQL_PWD=toor mysql -uroot'
|
||||
docker compose exec -T mysql bash -c 'echo "drop database if exists fleet; create database fleet;" | MYSQL_PWD=toor mysql -uroot'
|
||||
./build/fleet prepare db --dev
|
||||
|
||||
# Back up the development DB to file
|
||||
|
|
|
|||
|
|
@ -43,8 +43,6 @@ Fleet has no ambition to replace all of your other tools. (Though it might repl
|
|||
|
||||
Fleet plays well with Munki, Chef, Puppet, and Ansible, as well as with security tools like Crowdstrike and SentinelOne. For example, you can use the free version of Fleet to quickly report on what hosts are _actually_ running your EDR agent.
|
||||
|
||||
While most folks prefer to use one or the other, Fleet can also coexist peacefully with Rapid7 and other agent-based vulnerability scanners. This can be useful during migrations.
|
||||
|
||||
#### Free as in free
|
||||
The free version of Fleet will [always be free](https://fleetdm.com/pricing). Fleet is [independently backed](https://linkedin.com/company/fleetdm) and actively maintained with the help of many amazing [contributors](https://github.com/fleetdm/fleet/graphs/contributors).
|
||||
|
||||
|
|
|
|||
|
|
@ -40,6 +40,9 @@ Host status automations send a webhook request if a configured percentage of hos
|
|||
|
||||
Fleet sends these webhook requests once per day by default.
|
||||
|
||||
<meta name="pageOrderInSection" value="1509">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="noahtalerman">
|
||||
<meta name="authorFullName" value="Noah Talerman">
|
||||
<meta name="publishedOn" value="2024-07-03">
|
||||
<meta name="articleTitle" value="Automations">
|
||||
<meta name="description" value="Configure Fleet automations to trigger webhooks or create tickets in Jira and Zendesk for vulnerability, policy, and host status events.">
|
||||
<meta name="navSection" value="Device management">
|
||||
|
|
@ -1,8 +1,6 @@
|
|||
# ChromeOS
|
||||
For visibility on ChromeOS hosts, Fleet provides the fleetd Chrome extension which provides similar functionality as osquery on other operating systems.
|
||||
|
||||
## Adding ChromeOS hosts to Fleet
|
||||
|
||||
To learn how to add ChromeOS hosts to Fleet, visit [here](https://fleetdm.com/docs/using-fleet/adding-hosts#enroll-chromebooks).
|
||||
|
||||
> The fleetd Chrome browser extension is supported on ChromeOS operating systems that are managed using [Google Admin](https://admin.google.com). It is not intended for non-ChromeOS hosts with the Chrome browser installed.
|
||||
|
|
@ -23,6 +21,10 @@ By default, the hostname for a Chromebook host will be blank. The hostname can b
|
|||
|
||||
## Debugging ChromeOS
|
||||
To learn how to debug the Fleetd Chrome extension, visit [here](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/Testing-and-local-development.md#fleetd-chrome-extension).
|
||||
<meta name="title" value="Enroll Chromebooks">
|
||||
<meta name="pageOrderInSection" value="2000">
|
||||
<meta name="navSection" value="Dig deeper">
|
||||
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="zhumo">
|
||||
<meta name="authorFullName" value="Mo Zhu">
|
||||
<meta name="publishedOn" value="2023-11-21">
|
||||
<meta name="articleTitle" value="ChromeOS">
|
||||
<meta name="description" value="Learn about ChromeOS and Fleet.">
|
||||
|
|
@ -11,7 +11,7 @@ Fleet has implemented native support for CIS Benchmarks for the following platfo
|
|||
- Windows 10 Enterprise
|
||||
- Windows 11 Enterprise
|
||||
|
||||
[Where possible](#limitations), each CIS Benchmark is implemented with a [policy query](./REST-API.md#policies) in Fleet.
|
||||
[Where possible](#limitations), each CIS Benchmark is implemented with a [policy query](https://fleetdm.com/docs/rest-api/rest-api#policies) in Fleet.
|
||||
|
||||
These benchmarks are intended to gauge your organization's security posture, rather than the current state of a given host. A host may fail a CIS Benchmark policy despite having the correct settings enabled if there is no configuration profile or Group Policy Object (GPO) in place to enforce the setting. For example, this is the query for **CIS - Ensure FileVault Is Enabled (MDM Required)**:
|
||||
|
||||
|
|
@ -95,7 +95,7 @@ Following are the requirements to use the CIS Benchmarks in Fleet:
|
|||
|
||||
- Devices must be running [`fleetd`](https://fleetdm.com/docs/using-fleet/orbit), Fleet's lightweight agent.
|
||||
- Some CIS Benchmarks explicitly involve verifying MDM-based controls, so devices must be enrolled to an MDM solution.
|
||||
- On macOS, the orbit component of fleetd must have "Full Disk Access", see [Grant Full Disk Access to Osquery on macOS](./Adding-hosts.md#grant-full-disk-access-to-osquery-on-macos).
|
||||
- On macOS, the orbit component of fleetd must have "Full Disk Access", see [Grant Full Disk Access to Osquery on macOS](https://fleetdm.com/guides/enroll-hosts#grant-full-disk-access-to-osquery-on-macos).
|
||||
|
||||
## Limitations
|
||||
|
||||
|
|
@ -111,7 +111,9 @@ In August 2023, we completed scale testing on 10k Windows hosts and 70k macOS ho
|
|||
|
||||
Detailed results are [here](https://docs.google.com/document/d/1OSpyzMkHjVhG_-EIBkLu7X3hj_XfVASGl3IXIYChpck/edit?usp=sharing).
|
||||
|
||||
<meta name="pageOrderInSection" value="1700">
|
||||
<meta name="title" value="CIS Benchmarks">
|
||||
<meta name="description" value="Read about how Fleet's implementation of CIS Benchmarks offers consensus-based cybersecurity guidance, covering macOS 13.0 Ventura & Windows Enterprise.">
|
||||
<meta name="navSection" value="Security compliance">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="lucasmrod">
|
||||
<meta name="authorFullName" value="Lucas Rodriguez">
|
||||
<meta name="publishedOn" value="2024-04-02">
|
||||
<meta name="articleTitle" value="CIS Benchmarks">
|
||||
<meta name="description" value="Read about how Fleet's implementation of CIS Benchmarks offers consensus-based cybersecurity guidance.">
|
||||
46
articles/configuring-default-teams-for-devices-in-fleet.md
Normal file
46
articles/configuring-default-teams-for-devices-in-fleet.md
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
# Configuring default teams for macOS, iOS, and iPadOS devices in Fleet
|
||||
|
||||
Fleet allows you to configure default teams for macOS, iOS, and iPadOS devices as they automatically enroll in your instance. This ensures that devices are assigned to the correct teams and receive the appropriate apps and configuration profiles at enrollment.
|
||||
|
||||
## Why configure default teams?
|
||||
|
||||
The ability to assign default teams during device enrollment helps streamline the deployment process. Each device is automatically placed in its correct group, ensuring it receives the necessary configuration profiles and apps without requiring manual assignment.
|
||||
|
||||
### Configuring default teams in Fleet
|
||||
|
||||
Follow these steps to assign default teams to your devices:
|
||||
|
||||
1. **Navigate to automatic enrollment settings**:
|
||||
|
||||
- Go to **Settings > Integrations > Mobile device management (MDM)**, and locate the **Automatic enrollment** section.
|
||||
|
||||
2. **Edit the ABM token**:
|
||||
|
||||
- Click **Edit** next to the ABM token for which you want to configure default teams.
|
||||
|
||||
3. **Assign default teams**:
|
||||
|
||||
- In the modal, use the dropdowns to select the appropriate default team for each platform (macOS, iOS, and iPadOS).
|
||||
|
||||
4. **Save your changes**:
|
||||
|
||||
- After selecting the teams, click **Save** to apply the changes. New devices will be automatically assigned to the selected teams upon enrollment.
|
||||
|
||||
## Benefits of configuring default teams
|
||||
|
||||
1. **Streamlined deployment**: Devices are configured and ready for use immediately after enrollment, reducing manual setup time.
|
||||
|
||||
2. **Reduced errors**: Automating team assignments helps avoid misconfigurations and ensures that the right profiles and apps are installed on the correct devices.
|
||||
|
||||
## Conclusion
|
||||
|
||||
Configuring default teams in Fleet simplifies the enrollment and management of Apple devices, ensuring that each device is assigned to the correct team immediately upon enrollment. This feature reduces manual setup tasks for IT teams by automating the assignment of configuration profiles and apps based on team specifications. By streamlining the deployment process and minimizing errors, configuring default teams ensures that devices are ready to use right out of the box, helping organizations save time and maintain consistency across their device fleet.
|
||||
|
||||
For organizations managing a large number of macOS, iOS, or iPadOS devices, this feature plays a crucial role in automating routine tasks, increasing efficiency, and improving the overall deployment experience. It enables teams to focus on more critical tasks and be confident that newly enrolled devices are correctly configured. For more information on using Fleet, please refer to the [Fleet documentation](https://fleetdm.com/docs) and [guides](https://fleetdm.com/guides).
|
||||
|
||||
<meta name="articleTitle" value="Configuring default teams for macOS, iOS, and iPadOS devices in Fleet">
|
||||
<meta name="authorFullName" value="JD Strong">
|
||||
<meta name="authorGitHubUsername" value="spokanemac">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="publishedOn" value="2024-09-12">
|
||||
<meta name="description" value="This guide will walk you through configuring default teams for devices using the Fleet web UI.">
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Custom OS settings
|
||||
|
||||
In Fleet you can enforce OS settings on your your macOS, iOS, iPadOS, and Windows hosts using configuration profiles.
|
||||
In Fleet you can enforce OS settings like security restrictions, screen lock, Wi-Fi etc., on your your macOS, iOS, iPadOS, and Windows hosts using configuration or device profiles.
|
||||
|
||||
## Enforce OS settings
|
||||
|
||||
|
|
@ -36,7 +36,9 @@ In the top box, with "Verified," "Verifying," "Pending," and "Failed" statuses,
|
|||
|
||||
In the list of hosts, click on an individual host and click the **OS settings** item to see the status for a specific setting.
|
||||
|
||||
<meta name="pageOrderInSection" value="1505">
|
||||
<meta name="title" value="Custom OS settings">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="noahtalerman">
|
||||
<meta name="authorFullName" value="Noah Talerman">
|
||||
<meta name="publishedOn" value="2024-07-27">
|
||||
<meta name="articleTitle" value="Custom OS settings">
|
||||
<meta name="description" value="Learn how to enforce custom settings on macOS and Window hosts using Fleet's configuration profiles.">
|
||||
<meta name="navSection" value="Device management">
|
||||
59
articles/debunk-the-cross-platform-myth.md
Normal file
59
articles/debunk-the-cross-platform-myth.md
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
# Debunk the cross-platform myth
|
||||
|
||||
Conventional wisdom holds that cross-platform device management is a nightmare. It’s no surprise—most solutions out there are cobbled together with bolted-on features that never quite mesh. If you’ve tried managing a mixed fleet of macOS, Windows, and Linux devices, you might have some scars to show for it. But here’s the thing: it doesn’t have to be that way. Fleet is built differently, and it’s time to debunk the myth that cross-platform management has to suck.
|
||||
|
||||
## Cross-platform pain points
|
||||
|
||||
The skepticism around cross-platform device management is real, and for good reason. Many IT teams have been burned by solutions that promise seamless management across different operating systems but deliver only frustration and complexity. Solutions that often leave a trail of disappointed admins in their wake, often forcing you to manage the tools more than the devices. Fleet flips that script by letting you interact directly with each operating system’s native features. Whether Apple’s macOS, Microsoft’s Windows, or various Linux distributions, Fleet provides a consistent management experience without forcing you to “talk Windows” to your Macs or vice versa.
|
||||
|
||||
|
||||
## Managing every OS like it’s your favorite
|
||||
|
||||
Fleet introduces familiar concepts like custom attributes and dynamic grouping but adapts them to work with the nuances of each operating system. This means you can manage your macOS, Windows, and Linux devices without juggling multiple management platforms or dealing with convoluted workarounds. Everything is streamlined in one open-source platform, giving you direct access to the data and events from each OS.
|
||||
|
||||
By working directly with native operating system features, Fleet ensures you don’t lose low-level control or compromise on capabilities. Instead of managing multiple MDM solutions, you can focus on managing your devices—regardless of OS.
|
||||
|
||||
For example:
|
||||
|
||||
* **Operating systems**: You can enforce OS updates with Declarative Device Management (DDM), Nudge, and Windows Update from one console.
|
||||
* **Automated enrollment**: Drop-ship devices to your end users with Apple Business Manager or Autopilot and let them set up their own accounts. No IT help is needed.
|
||||
* **Config management**: Manage settings with configuration profiles for Apple and device profiles for Windows. Use a canary team to test changes before they go live.
|
||||
* **App management**: Automatically keep applications and plugins secure and up-to-date. Install the software end users need or let them install it themselves via self-service.
|
||||
* **Scripts and events**: Easily manage and version control your custom script library. Execute shell and PowerShell scripts when computers drift from the baseline.
|
||||
* **Keep up with Apple**: Fleet's team and community stay current on the latest features and releases from all supported platform vendors, not just Apple.
|
||||
|
||||
## Switching platforms is disruptive
|
||||
|
||||
It’s understandable to be cautious about adopting a new management solution, especially if you’re concerned about the time and effort involved in switching. However, Fleet is designed with ease of transition in mind. Our platform integrates seamlessly with your existing tools and workflows, minimizing disruption. Plus, with our comprehensive documentation and responsive community support, you’ll have everything you need to get up and running quickly. Fleet’s flexible deployment options let you start small and scale at your pace, ensuring a smooth, controlled migration.
|
||||
|
||||

|
||||
|
||||
## One platform, many possibilities
|
||||
|
||||
Fleet isn’t just about making cross-platform management tolerable—it’s about making it genuinely effective. With Fleet, you can enforce OS updates, automate device enrollment, manage configurations, and keep applications secure, all from one place. You can also deploy Fleet yourself at any time; it’s 100% source-available, meaning you can look at the source code for how any part of it works.
|
||||
|
||||
And because Fleet is open-source, it’s designed with flexibility and transparency in mind. You can tailor it to fit your organization’s needs, whether you’re managing a few hundred devices or tens of thousands.
|
||||
|
||||
<blockquote purpose="quote">
|
||||
|
||||
Mad props to how easy making a deploy pkg of the agent was. I wish everyone made stuff that easy.
|
||||
|
||||
</blockquote>
|
||||
|
||||
_Wes Whetstone, Staff CPE at Stripe_
|
||||
|
||||
|
||||
## The takeaway
|
||||
|
||||
Cross-platform management doesn’t have to be the headache it’s been in the past. Fleet is here to simplify how you manage your devices, no matter what mix of operating systems you’re dealing with. It’s time to let go of the myth that managing different platforms means managing different tools. With Fleet, you can have everything you need in one place—without the anxiety.
|
||||
|
||||
Ready to get started?
|
||||
|
||||
Visit our [start page](https://fleetdm.com/start) to begin your journey.
|
||||
|
||||
<meta name="category" value="announcements">
|
||||
<meta name="authorFullName" value="Mike McNeil">
|
||||
<meta name="authorGitHubUsername" value="mikermcneil">
|
||||
<meta name="publishedOn" value="2024-08-27">
|
||||
<meta name="articleTitle" value="Debunk the cross-platform myth">
|
||||
<meta name="description" value="Debunk the cross-platform myth with MDM">
|
||||
|
|
@ -1,7 +1,5 @@
|
|||
# Deploy Fleet on Cloud.gov (Cloud Foundry)
|
||||
|
||||
> **This article was archived on May 16, 2024.** Check out [Deploy Fleet](https://fleetdm.com/docs/deploy/deploy-fleet) for the most up to date deployment method.
|
||||
|
||||

|
||||
|
||||
Cloud.gov is a [FEDRAMP moderate Platform-as-a-Service
|
||||
|
|
|
|||
97
articles/deploy-security-agents.md
Normal file
97
articles/deploy-security-agents.md
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
# Deploy security agents
|
||||
|
||||

|
||||
|
||||
Fleet [v4.50.0](https://github.com/fleetdm/fleet/releases/tag/fleet-v4.50.0) introduced the ability to upload and deploy security agents to your hosts. Beyond a [bootstrap package](https://fleetdm.com/docs/using-fleet/mdm-macos-setup-experience#bootstrap-package) at enrollment, deploying security agents allows you to specify and verify device configuration using a pre-enrollment osquery query and customization of the install and post-install scripts, allowing for key and license deployment and configuration. This guide will walk you through the steps to upload, configure, and install a security agent to hosts in your fleet.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
* Fleet [v4.50.0](https://github.com/fleetdm/fleet/releases/tag/fleet-v4.50.0).
|
||||
* `fleetd` 1.25.0 deployed via MDM or built with the `--scripts-enabled` flag.
|
||||
* An S3 bucket [configured](https://fleetdm.com/docs/configuration/fleet-server-configuration#s-3-software-installers-bucket) to store the installers.
|
||||
* Increase any load balancer timeouts to at least 5 minutes for the following endpoints:
|
||||
* [Add software](https://fleetdm.com/docs/rest-api/rest-api#add-software).
|
||||
* [Batch-apply software](https://fleetdm.com/docs/rest-api/rest-api#add-software).
|
||||
|
||||
## Step-by-step instructions
|
||||
|
||||
### Access security agent installers
|
||||
|
||||
To access and manage security agents in Fleet:
|
||||
|
||||
* **Navigate to the Software page**: Click on the "Software" tab in the main navigation menu.
|
||||
* **Select a team**: Click on the dropdown at the top left of the page.
|
||||
* **Find your software**: using the filters on the top of the table, you can choose between:
|
||||
* “Available for install” filters software that can be installed on your hosts.
|
||||
* “Self-service” filters software that end users can install from Fleet Desktop.
|
||||
* **Select security agent installer**: Click on a software package to view details and access additional actions for the agent installer.
|
||||
|
||||
### Add a security agent to a team
|
||||
|
||||
* **Navigate to the Software page**: Click on the "Software" tab in the main navigation menu.
|
||||
* **Select a team**: Select a team or the "No team" team to add a security agent.
|
||||
|
||||
> Security agents cannot be added to "All teams"
|
||||
|
||||
* Click the “Add Software” button in the top right corner, and a modal will appear.
|
||||
* Choose a file to upload. `.pkg`, `.msi`, `.exe`, or `.deb` files are supported.
|
||||
* After selecting a file, a default install script will be pre-filled. If the security agent requires a custom installation process, this script can be edited.
|
||||
* To allow users to install the software from Fleet Desktop, check the “Self-service” checkbox.
|
||||
* To customize the conditions, click on “Advanced options”:
|
||||
* **Pre-install condition**: A pre-install condition is a valid osquery SQL statement that will be evaluated on the host before installing the software. If provided, the installation will proceed only if the query returns any value.
|
||||
* **Post-install script** A post-install script will run after the installation is complete, allowing you to configure the security agent right after installation. If this script returns a non-zero exit code, the installation will fail, and `fleetd` will attempt to uninstall the software.
|
||||
|
||||
### Install a security agent on a host
|
||||
|
||||
After an installer is added to a team, it can be installed on hosts via the UI.
|
||||
|
||||
* **Navigate to the Hosts page**: Click on the "Hosts" tab in the main navigation menu.
|
||||
* **Navigate to the Host details page**: Click the host you want to install the security agent.
|
||||
* **Navigate to the Host software tab**: In the host details, search for the tab named “Software”
|
||||
* **Find your security agent**: Use the search bar and filters to search for your security agent.
|
||||
* **Install the security agent on the host**: In the leftmost row of the table, click on “Actions” > “Install.”
|
||||
* **Track installation status**: by either
|
||||
* Checking the “Install status” in the host software table.
|
||||
* Navigate to the “Details” tab on the host details page and check the activity log.
|
||||
|
||||
### Edit a security agent
|
||||
|
||||
Security agent installers can’t be edited via the UI. To modify an installer, remove it from the UI and add a new one.
|
||||
|
||||
### Remove a security agent from a team
|
||||
|
||||
* **Navigate to the Software page**: Click on the "Software" tab in the main navigation menu.
|
||||
* **Select a team**: Select a team or the "No team" team to add a security agent.
|
||||
* **Find your software**: using the filters on the top of the table, you can choose between:
|
||||
* “Available for install” filters software can be installed on your hosts.
|
||||
* “Self-service” filters software that users can install from Fleet Desktop.
|
||||
* **Select security agent installer**: Click on a software package to view details.
|
||||
* **Remove security agent installer**: From the Actions menu, select "Delete." Click the "Delete" button on the modal.
|
||||
|
||||
> Removing a security agent from a team will not uninstall the agent from the existing host(s).
|
||||
|
||||
### Manage security agents with the REST API
|
||||
|
||||
Fleet also provides a REST API for managing software programmatically. The API allows you to add, update, retrieve, list, and delete software. Detailed documentation on Fleet's [REST API is available](https://fleetdm.com/docs/rest-api/rest-api#software).
|
||||
|
||||
### Manage security agents with GitOps
|
||||
|
||||
Installers for security agents can be managed via `fleetctl` using [GitOps](https://fleetdm.com/docs/using-fleet/gitops).
|
||||
|
||||
Please refer to the documentation specific to [managing software with GitOps](https://fleetdm.com/docs/using-fleet/gitops#software). For a real-world example, [see how we manage software at Fleet](https://github.com/fleetdm/fleet/tree/main/it-and-security/teams).
|
||||
|
||||
|
||||
## Conclusion
|
||||
|
||||
Deploying security agents with Fleet is straightforward and ensures your hosts are protected with the latest security measures. This guide has shown you how to access, add, and install security agents, as well as manage them using the REST API and `fleetctl`. Following these steps can effectively equip your fleet with the necessary security tools.
|
||||
|
||||
See Fleet's [documentation](https://fleetdm.com/docs/using-fleet) and additional [guides](https://fleetdm.com/guides) for more details on advanced setups, software features, and vulnerability detection.
|
||||
|
||||
|
||||
<meta name="articleTitle" value="Deploy security agents">
|
||||
<meta name="authorFullName" value="Roberto Dip">
|
||||
<meta name="authorGitHubUsername" value="roperzh">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="publishedOn" value="2024-08-05">
|
||||
<meta name="articleImageUrl" value="../website/assets/images/articles/deploy-security-agents-1600x900@2x.png">
|
||||
<meta name="description" value="This guide will walk you through adding software to Fleet.">
|
||||
69
articles/discovering-chrome-ai-using-fleet.md
Normal file
69
articles/discovering-chrome-ai-using-fleet.md
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
# Discovering Chrome AI using Fleet
|
||||
|
||||

|
||||
|
||||
# Discovering AI in Chrome with Fleet
|
||||
|
||||
Staying ahead of technological innovations is crucial for individuals and organizations. Google Chrome, one of the most widely used web browsers, continually evolves to incorporate new features, including artificial intelligence (AI). This article will guide you through detecting if AI capabilities have been enabled in Chrome on macOS using Fleet.
|
||||
|
||||
## Introduction to Chrome AI innovations
|
||||
|
||||
Google Chrome has integrated AI to enhance user experience by providing intelligent suggestions, improving search results, and offering in-browser assistance. Visit the [Chrome AI Innovations page](https://www.google.com/chrome/ai-innovations/) for more information.
|
||||
|
||||
## Using Fleet to discover AI features in Chrome
|
||||
|
||||
Fleet, a comprehensive device management and security tool, allows organizations to monitor installed software configurations and enabled features on endpoints and servers. Investigating this data enables Fleet admins to build SQL queries for detection.
|
||||
|
||||
### Step 1: Understanding Chrome's preferences JSON file
|
||||
|
||||
On macOS, Chrome stores user settings and configurations in a JSON file at the following path:
|
||||
|
||||
```
|
||||
/Users/<user>/Library/Application Support/Google/Chrome/Default/Preferences
|
||||
```
|
||||
|
||||
### Step 2: Identifying AI-related settings
|
||||
|
||||
Chrome AI-related preferences are stored in the `optimization_guide` section of the Chrome Preferences file. The `tab_organization_setting_state` key / value field will signify if AI features are enabled.
|
||||
|
||||
`jq` is a lightweight and powerful command-line tool for parsing, filtering, and manipulating JSON data. It can extract and parse information from JSON files at specific key / value fields.
|
||||
|
||||
In this case, `jq` is used to locate and read the value of the `tab_organization_setting_state` key within the Chrome Preferences file. This knowledge allows an admin to craft a Fleet query for reporting the state of the Chrome AI settings.
|
||||
|
||||
- If enabled, the setting will return `1`.
|
||||
|
||||

|
||||
|
||||
```
|
||||
% jq '.optimization_guide.tab_organization_setting_state' /Users/<user>/Library/Application\ Support/Google/Chrome/Default/Preferences
|
||||
1
|
||||
```
|
||||
|
||||
- If disabled, the setting will return `2`.
|
||||
|
||||

|
||||
|
||||
```
|
||||
% jq '.optimization_guide.tab_organization_setting_state' /Users/<user>/Library/Application\ Support/Google/Chrome/Default/Preferences
|
||||
2
|
||||
```
|
||||
|
||||
### Step 3: Query the JSON file with Fleet
|
||||
|
||||
To detect Chrome AI features in Fleet, use a SQL query like the following:
|
||||
|
||||
```
|
||||
SELECT fullkey,path FROM parse_json WHERE path LIKE '/Users/%/Library/Application Support/Google/Chrome/Default/Preferences' AND fullkey='optimization_guide/tab_organization_setting_state';
|
||||
```
|
||||
|
||||
### Conclusion
|
||||
|
||||
Fleet's powerful querying abilities allow you to monitor features like these across all of your devices.
|
||||
|
||||
<meta name="articleTitle" value="Discovering Chrome AI using Fleet">
|
||||
<meta name="authorFullName" value="Brock Walters">
|
||||
<meta name="authorGitHubUsername" value="nonpunctual">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="publishedOn" value="2024-09-06">
|
||||
<meta name="articleImageUrl" value="../website/assets/images/articles/discovering-chrome-ai-using-fleet-1600x900@2x.jpg">
|
||||
<meta name="description" value="Use Fleet to detect and monitor settings enabled in Google Chrome by querying Chrome's preferences JSON file.">
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
# Downgrading from Fleet Premium
|
||||
# Downgrade from Fleet Premium
|
||||
|
||||
Follow these steps to downgrade your Fleet instance from Fleet Premium.
|
||||
|
||||
|
|
@ -34,8 +34,9 @@ Follow these steps to downgrade your Fleet instance from Fleet Premium.
|
|||
1. Remove your license key from your Fleet configuration. Documentation on where the license key is located in your configuration is [here](https://fleetdm.com/docs/deploying/configuration#license).
|
||||
2. Restart your Fleet server.
|
||||
|
||||
|
||||
|
||||
<meta name="title" value="Downgrading Fleet">
|
||||
<meta name="navSection" value="Dig deeper">
|
||||
<meta name="pageOrderInSection" value="2000">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="eashaw">
|
||||
<meta name="authorFullName" value="Eric Shaw">
|
||||
<meta name="publishedOn" value="2024-01-09">
|
||||
<meta name="articleTitle" value="Downgrade from Fleet Premium">
|
||||
<meta name="description" value="Learn how to downgrade from Fleet Premium.">
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
# Disk encryption
|
||||
# Enforce disk encryption
|
||||
|
||||
_Available in Fleet Premium_
|
||||
|
||||
|
|
@ -8,7 +8,9 @@ In Fleet, you can enforce disk encryption for your macOS and Windows hosts.
|
|||
|
||||
When disk encryption is enforced, hosts’ disk encryption keys will be stored in Fleet.
|
||||
|
||||
For Windows hosts, disk encryption is enforced on the C: volume (default system/OS drive).
|
||||
For macOS hosts that automatically enroll, disk encryption is enforced during Setup Assistant.
|
||||
|
||||
For Windows, disk encryption is enforced on the C: volume (default system/OS drive).
|
||||
|
||||
## Enforce disk encryption
|
||||
|
||||
|
|
@ -54,15 +56,13 @@ How to view the disk encryption key:
|
|||
|
||||
## Migrate macOS hosts
|
||||
|
||||
When migrating macOS hosts another MDM solution, in order to complete the process of encrypting the hard drive and escrowing the key in Fleet, your end users must take action.
|
||||
When migrating macOS hosts from another MDM solution, in order to complete the process of encrypting the hard drive and escrowing the key in Fleet, your end users must log out or restart their device.
|
||||
|
||||
If the host already had disk encryption turned on, the user will need to input their password.
|
||||
Share [these guided instructions](https://fleetdm.com/guides/mdm-migration#how-to-turn-on-disk-encryption) with your end users.
|
||||
|
||||
If the host did not already have disk encryption turned on, the user will need to log out or restart their computer.
|
||||
|
||||
Share [these guided instructions](./MDM-migration-guide.md#how-to-turn-on-disk-encryption) with your end users.
|
||||
|
||||
<meta name="pageOrderInSection" value="1504">
|
||||
<meta name="title" value="Disk encryption">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="noahtalerman">
|
||||
<meta name="authorFullName" value="Noah Talerman">
|
||||
<meta name="publishedOn" value="2024-08-14">
|
||||
<meta name="articleTitle" value="Enforce disk encryption">
|
||||
<meta name="description" value="Learn how to enforce disk encryption on macOS and Windows hosts and manage encryption keys with Fleet Premium.">
|
||||
<meta name="navSection" value="Device management">
|
||||
|
|
@ -1,18 +1,14 @@
|
|||
# OS updates
|
||||
# Enforce OS updates
|
||||
|
||||
_Available in Fleet Premium_
|
||||
|
||||
In Fleet you can enforce OS updates on your macOS and Windows hosts remotely.
|
||||
|
||||
## Enforce OS updates
|
||||
|
||||
You can enforce OS updates using the Fleet UI, Fleet API, or [Fleet's GitOps workflow](https://github.com/fleetdm/fleet-gitops).
|
||||
In Fleet, you can enforce OS updates on your macOS, Windows, iOS, and iPadOS hosts remotely using the Fleet UI, Fleet API, or [Fleet's GitOps workflow](https://github.com/fleetdm/fleet-gitops).
|
||||
|
||||
Fleet UI:
|
||||
|
||||
1. Head to the **Controls** > **OS updates** tab.
|
||||
|
||||
2. To enforce OS updates for macOS, select **macOS** and set a **Minimum version** and **Deadline**.
|
||||
2. To enforce OS updates for macOS, iOS, or iPadOS, select the platform and set a **Minimum version** and **Deadline**.
|
||||
|
||||
3. For Windows, select **Windows** and set a **Deadline** and **Grace period**.
|
||||
|
||||
|
|
@ -22,21 +18,22 @@ Fleet API: API documentation is [here](https://fleetdm.com/docs/rest-api/rest-ap
|
|||
|
||||
### macOS
|
||||
|
||||
When a minimum version is enforced, the end users see a native macOS notification (DDM) once per day. Users can choose to update ahead of the deadline or schedule it for that night. 24 hours before the deadline, the notification appears hourly and ignores Do Not Disturb. One hour before the deadline, the notification appears every 30 minutes, and then every 10 minutes.
|
||||
When a minimum version is enforced, the end users see a native macOS notification (DDM) once per day. Users can choose to update ahead of the deadline or schedule it for that night. 24 hours before the deadline, the notification appears hourly and ignores Do Not Disturb. One hour before the deadline, the notification appears every 30 minutes and then every 10 minutes.
|
||||
|
||||
If the host was turned off when the deadline passed, the update will be scheduled an hour after it’s turned on.
|
||||
|
||||
### macOS (below version 14.0)
|
||||
For macOS devices that use Automated Device Enrollment (ADE), if the device is below the specified minimum version, it will be required to update to the latest [available version](#available-macos-ios-and-ipados-versions) during ADE before device setup and enrollment can proceed.
|
||||
|
||||
End users are encouraged to update macOS (via [Nudge](https://github.com/macadmins/nudge)).
|
||||
### iOS and iPadOS
|
||||
|
||||

|
||||
End users will see a notification in their Notification Center after the deadline when a minimum version is enforced. They can’t use their iPhone or iPad until the OS update is installed.
|
||||
|
||||
| | > 1 day before deadline | < 1 day before deadline | Past deadline |
|
||||
| ------------------------------------ | ----------------------- | ----------------------- | --------------------- |
|
||||
| Nudge window frequency | Once a day at 8pm GMT | Once every 2 hours | Immediately on login |
|
||||
| End user can defer | ✅ | ✅ | ❌ |
|
||||
| Nudge window is dismissible | ✅ | ✅ | ❌ |
|
||||
For iOS and iPadOS devices that use Automated Device Enrollment (ADE), if the device is below the specified
|
||||
minimum version, it will be required to update to the latest [available version](#available-macos-ios-and-ipados-versions) during ADE before device setup and enrollment can proceed.
|
||||
|
||||
### Available macOS, iOS, and iPadOS versions
|
||||
|
||||
The Apple Software Lookup Service (available at [https://gdmf.apple.com/v2/pmv](https://gdmf.apple.com/v2/pmv)) is the official resource for obtaining a list of publicly available updates, upgrades, and Rapid Security Responses. Make sure to use versions available in GDMF; otherwise, the update will not be scheduled.
|
||||
|
||||
### Windows
|
||||
|
||||
|
|
@ -50,7 +47,21 @@ If an end user was on vacation when the deadline passed, the end user is given a
|
|||
|
||||
Fleet enforces OS updates for quality and feature updates. Read more about the types of Windows OS updates in the Microsoft documentation [here](https://learn.microsoft.com/en-us/windows/deployment/update/get-started-updates-channels-tools#types-of-updates).
|
||||
|
||||
<meta name="pageOrderInSection" value="1503">
|
||||
<meta name="title" value="OS updates">
|
||||
<meta name="description" value="Learn how to manage OS updates on macOS and Windows devices.">
|
||||
<meta name="navSection" value="Device management">
|
||||
### macOS (below version 14.0)
|
||||
|
||||
End users are encouraged to update macOS (via [Nudge](https://github.com/macadmins/nudge)).
|
||||
|
||||

|
||||
|
||||
| | > 1 day before deadline | < 1 day before deadline | Past deadline |
|
||||
| ------------------------------------ | ----------------------- | ----------------------- | --------------------- |
|
||||
| Nudge window frequency | Once a day at 8pm GMT | Once every 2 hours | Immediately on login |
|
||||
| End user can defer | ✅ | ✅ | ❌ |
|
||||
| Nudge window is dismissible | ✅ | ✅ | ❌ |
|
||||
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="noahtalerman">
|
||||
<meta name="authorFullName" value="Noah Talerman">
|
||||
<meta name="publishedOn" value="2024-08-10">
|
||||
<meta name="articleTitle" value="Enforce OS updates">
|
||||
<meta name="description" value="Learn how to manage OS updates on macOS, Windows, iOS, and iPadOS devices.">
|
||||
|
|
@ -1,7 +1,5 @@
|
|||
# Enroll hosts
|
||||
|
||||
## Introduction
|
||||
|
||||
Fleet gathers information from an [osquery](https://github.com/osquery/osquery) agent installed on each of your hosts. The recommended way to install osquery is using fleetd.
|
||||
|
||||
You can enroll macOS, Windows or Linux hosts via the [CLI](#cli) or [UI](#ui). To learn how to enroll Chromebooks, see [Enroll Chromebooks](#enroll-chromebooks).
|
||||
|
|
@ -14,9 +12,9 @@ Fleet supports the [latest version of osquery](https://github.com/osquery/osquer
|
|||
|
||||
> You must have `fleetctl` installed. [Learn how to install `fleetctl`](https://fleetdm.com/docs/using-fleet/fleetctl-cli#installing-fleetctl).
|
||||
|
||||
The `fleetctl package` command is used to generate Fleet's agent (fleetd).
|
||||
The `fleetctl package` command is used to generate Fleet's agent (fleetd) install package..
|
||||
|
||||
The `--type` flag is used to specify the fleetd installer type:
|
||||
The `--type` flag is used to specify the fleetd installer type. Note that Windows can only generate an MSI package:
|
||||
- macOS: .pkg
|
||||
- Windows: .msi
|
||||
- Linux: .deb or .rpm
|
||||
|
|
@ -39,7 +37,7 @@ To generate Fleet's agent (fleetd) in Fleet UI:
|
|||
|
||||
1. Go to the **Hosts** page, and select **Add hosts**.
|
||||
2. Select the tab for your desired platform (e.g. macOS).
|
||||
3. A CLI command with all necessary flags will be generated. Copy and run the command with [fleetctl](https://fleetdm.com/docs/using-fleet/fleetctl-cli) installed.
|
||||
3. A CLI command with all necessary flags to generate an install package will be generated. Copy and run the command with [fleetctl](https://fleetdm.com/docs/using-fleet/fleetctl-cli) installed.
|
||||
|
||||
### Enroll host to a specific team
|
||||
|
||||
|
|
@ -54,7 +52,7 @@ You can use your software management tool of choice to distribute Fleet's agent
|
|||
|
||||
### Fleet Desktop
|
||||
|
||||
[Fleet Desktop](./Fleet-desktop.md) is a menu bar icon available on macOS, Windows, and Linux that gives your end users visibility into the security posture of their machine.
|
||||
[Fleet Desktop](https://fleetdm.com/guides/fleet-desktop) is a menu bar icon available on macOS, Windows, and Linux that gives your end users visibility into the security posture of their machine.
|
||||
|
||||
You can include Fleet Desktop in Fleet's agent (fleetd) by including `--fleet-desktop` in the `fleetctl package` command.
|
||||
|
||||
|
|
@ -379,6 +377,9 @@ but can result in a large volume of error logs. In fleetd v1.15.1, we added an e
|
|||
Applying the environmental variable `"FLEETD_SILENCE_ENROLL_ERROR"=1` on a host will silence fleetd enrollment errors if a `--fleet-url` is not present.
|
||||
This variable is read at launch and will require a restart of the Orbit service if it is not set before installing `fleetd` v1.15.1.
|
||||
|
||||
<meta name="pageOrderInSection" value="500">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="noahtalerman">
|
||||
<meta name="authorFullName" value="Noah Talerman">
|
||||
<meta name="publishedOn" value="2024-08-08">
|
||||
<meta name="articleTitle" value="Enroll hosts">
|
||||
<meta name="description" value="Learn how to enroll hosts to Fleet.">
|
||||
<meta name="navSection" value="The basics">
|
||||
44
articles/filtering-software-by-vulnerability.md
Normal file
44
articles/filtering-software-by-vulnerability.md
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
# Filtering software by vulnerability in Fleet
|
||||
|
||||

|
||||
|
||||
## Introduction
|
||||
|
||||
Fleet has introduced a powerful new feature that allows you to filter software by its associated vulnerabilities, helping you prioritize patches more effectively. Whether you're managing hundreds or thousands of software titles, this feature makes it easier to identify and address the most critical vulnerabilities in your environment.
|
||||
|
||||
This filtering capability is particularly useful in environments where patch management is critical to your security posture. By filtering software based on vulnerability severity and known exploits, you can first ensure that the most critical issues are addressed, enhancing your overall security strategy.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
* Fleet version 4.56 or later
|
||||
* Premium users have access to advanced filters by severity level and known exploited vulnerabilities
|
||||
|
||||
### Filtering Software by Vulnerability
|
||||
|
||||
1. **Navigate to the Software page**: In your Fleet dashboard, go to the **Software** tab. This will display a list of all the software detected in your environment.
|
||||
|
||||
2. **Add filters**: Click on the **Add Filters** button. This will open options for filtering the software list based on specific criteria.
|
||||
|
||||
3. **Choose severity level**: From the dropdown menu, select the **Severity level** of vulnerabilities you're interested in. This allows you to focus on software with the highest severity of vulnerabilities, such as "Critical" or "High."
|
||||
|
||||
4. **Toggle "Has known exploit"**: You can refine your filter by toggling the **Has known exploit** option. This will filter the software list to show only those with vulnerabilities that have known exploits, enabling you to prioritize these for patching.
|
||||
|
||||
5. **Review filtered results**: Once you've applied your filters, the software list will update to show only the software that meets your criteria. This filtered view will help you prioritize which software needs immediate attention in your patching strategy.
|
||||
|
||||
### Using the REST API to filter software for vulnerabilities
|
||||
|
||||
Fleet provides a REST API to filter software for vulnerabilities, allowing you to integrate this functionality into your automated workflows. Learn more about Fleet's [REST API](https://fleetdm.com/docs/rest-api/rest-api#vulnerabilities).
|
||||
|
||||
## Conclusion
|
||||
|
||||
The new software filtering feature in Fleet makes it easier than ever to manage vulnerabilities in your software environment. You can better protect your organization from potential threats by prioritizing patches based on severity and known exploits. Explore the API capabilities to integrate this feature into your broader security workflows.
|
||||
|
||||
For more tips and detailed guides, don’t forget to check out the Fleet [documentation](https://fleetdm.com/docs/get-started/why-fleet).
|
||||
|
||||
<meta name="articleTitle" value="Filtering software by vulnerability in Fleet">
|
||||
<meta name="authorFullName" value="Tim Lee">
|
||||
<meta name="authorGitHubUsername" value="mostlikelee">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="publishedOn" value="2024-08-30">
|
||||
<meta name="articleImageUrl" value="../website/assets/images/articles/discovering-geacon-using-fleet-1600x900@2x.jpg">
|
||||
<meta name="description" value="Filter software by vulnerability in Fleet to prioritize critical patches and enhance your organization's security posture.">
|
||||
132
articles/fleet-4.55.0.md
Normal file
132
articles/fleet-4.55.0.md
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
# Fleet 4.55.0 | MySQL 8, arm64 support, FileVault improvements, VPP support.
|
||||
|
||||

|
||||
|
||||
Fleet 4.55.0 is live. Check out the full [changelog](https://github.com/fleetdm/fleet/releases/tag/fleet-v4.55.0) or continue reading to get the highlights.
|
||||
For upgrade instructions, see our [upgrade guide](https://fleetdm.com/docs/deploying/upgrading-fleet) in the Fleet docs.
|
||||
|
||||
## Highlights
|
||||
|
||||
* MySQL 8 support, MySQL 5.7 sunsets
|
||||
* FileVault key rotation with Escrow Buddy
|
||||
* FileVault enforcement at enrollment
|
||||
* Arm64 support
|
||||
* VPP app support for macOS
|
||||
* "No team" software support
|
||||
|
||||
### MySQL 8 support, MySQL 5.7 sunsets
|
||||
|
||||
Fleet has updated its database compatibility by adding support for MySQL 8, while simultaneously dropping support for MySQL 5.7. This change aligns Fleet with the latest advancements in database technology, offering enhanced performance, security, and features available in MySQL 8. Organizations using Fleet are encouraged to upgrade their database systems to MySQL 8 to take full advantage of these improvements. By focusing on the latest supported versions, Fleet ensures that its platform remains robust, secure, and well-equipped to handle the demands of modern IT environments while phasing out older versions that may not provide the same level of performance or security.
|
||||
|
||||
### FileVault key rotation with Escrow Buddy
|
||||
|
||||
Fleet now includes support for FileVault key rotation using [Escrow Buddy](https://github.com/macadmins/escrow-buddy), a tool developed by the Netflix Client Systems Engineering team for the MacAdmins community to securely manage and rotate FileVault recovery keys on macOS devices. This feature allows IT administrators to automate the process of rotating FileVault keys, ensuring that encrypted macOS hosts remain secure while maintaining access control. By integrating with Escrow Buddy, Fleet enables seamless key management, reducing the administrative burden of manually rotating keys and enhancing the overall security posture of macOS environments. This update reflects Fleet's commitment to providing robust security tools that integrate with trusted community resources, ensuring organizations can efficiently manage device encryption and recovery processes.
|
||||
|
||||
### FileVault enforcement at enrollment
|
||||
|
||||
Fleet now supports enforcing FileVault encryption during the enrollment process for macOS devices, ensuring that all newly enrolled Macs are automatically encrypted. This feature enhances security by mandating that FileVault is enabled as part of the initial device setup, reducing the risk of unencrypted data on managed endpoints. By integrating FileVault enforcement into the enrollment workflow, Fleet helps organizations maintain a consistent security posture across their macOS fleet, ensuring compliance with internal policies and regulatory requirements. This update underscores Fleet's commitment to providing comprehensive security management tools that protect sensitive data and simplify the administration of macOS devices.
|
||||
|
||||
### Arm64 support
|
||||
|
||||
Fleet now includes support for Linux hosts running on the arm64 architecture. This update enables organizations to integrate a broader range of devices into their Fleet management system, ensuring comprehensive oversight and control across diverse hardware environments. By supporting arm64 Linux hosts, Fleet caters to the growing use of ARM-based systems in various sectors, allowing IT administrators to manage these devices with the same level of detail and efficiency as traditional x86-based hosts. This aligns with Fleet's commitment to providing versatile and inclusive device management solutions, empowering users to maintain a unified and efficient IT infrastructure.
|
||||
|
||||
### VPP app support for macOS
|
||||
|
||||
Fleet now supports installing Volume Purchase Program (VPP) apps from the Apple App Store on macOS devices. This feature enables IT administrators to deploy and manage apps purchased through Apple's VPP directly to macOS hosts, streamlining the process of distributing essential software across the organization. By integrating VPP app installations into Fleet, organizations can ensure that licensed applications are efficiently deployed to the appropriate devices, improving software management and compliance. This update enhances Fleet's capabilities in managing macOS environments, offering a more seamless and centralized approach to app distribution for enterprise and educational settings.
|
||||
|
||||
### "No team" software support
|
||||
|
||||
Fleet now supports adding software to the "No team" team, providing greater flexibility in managing software across an organization's devices. This feature allows administrators to deploy and manage software that applies universally without being restricted to specific teams. By adding software to the "No team" team, IT teams can ensure that essential tools and applications are available across all devices, regardless of their team assignment. This update simplifies the management of widely used software and enhances the ability to maintain consistency and compliance across the entire fleet. It reflects Fleet's commitment to offering versatile solutions that cater to diverse organizational needs and streamline device management processes.
|
||||
|
||||
## Changes
|
||||
|
||||
**NOTE:** Beginning with v4.55.0, Fleet no longer supports MySQL 5.7 because it has reached [end of life](https://mattermost.com/blog/mysql-5-7-reached-eol-upgrade-to-mysql-8-x-today/#:~:text=In%20October%202023%2C%20MySQL%205.7,to%20upgrade%20to%20MySQL%208.). The minimum version supported is MySQL 8.0.36.
|
||||
|
||||
### Endpoint Operations
|
||||
|
||||
- Added support for generating `fleetd` packages for Linux ARM64.
|
||||
- Added new `fleetctl package` --arch flag.
|
||||
- Updated `fleetctl package` command to remove the `--version` flag. The version of the package can be controlled by `--orbit-channel` flag.
|
||||
- Updated maintenance window descriptions to update regularly to match the failing policy description/resolution.
|
||||
- Updated maintenance windows using Google Calendar so that calendar events are now recreated within 30 seconds if deleted or moved to the past.
|
||||
- Fleet server watches for potential changes for up to 1 week after original event time. If event is moved forward more than 1 week, then after 1 week Fleet server will check for event changes once every 30 minutes.
|
||||
- **NOTE:** These near real-time updates may add additional load to the Google Calendar API, so it is recommended to use API usage alerts or other monitoring methods.
|
||||
|
||||
### Device Management
|
||||
|
||||
- Integrated [Escrow Buddy](https://github.com/macadmins/escrow-buddy) to add enforcement of FileVault during the MacOS Setup Assistant process for hosts that are
|
||||
enrolled into teams (or no team) with disk encryption turned on. Thank you homebysix and team!
|
||||
- Added OS updates support to iOS/iPadOS devices.
|
||||
- Added iOS and iPadOS device details refetch triggered with the existing `POST /api/latest/fleet/hosts/:id/refetch` endpoint.
|
||||
- Added iOS and iPadOS user-installed apps to Fleet.
|
||||
- Added iOS and iPadOS apps to be installed using Apple's VPP (Volume Purchase Program) to Fleet.
|
||||
- Added support for VPP to GitOps.
|
||||
- Added the `POST /mdm/apple/vpp_token`, `DELETE /mdm/apple/vpp_token` and `GET /vpp` endpoints and related functionality.
|
||||
- Added new `GET /software/app_store_apps` and `POST /software/app_store_apps` endpoints and associated functionality.
|
||||
- Added the associated VPP apps to the `GET /software/titles` and `GET /software/titles/:id` endpoints.
|
||||
- Added the associated VPP apps to the `GET /hosts/:id/software` and `GET /device/:token/software` endpoints.
|
||||
- Added support to delete a VPP app from a team in `DELETE /software/titles/:software_title_id/available_for_install`.
|
||||
- Added `exclude_software` query parameter to "Get host by identifier" API.
|
||||
- Added ability to add/remove/disable apps with VPP in the Fleet UI.
|
||||
- Added a warning banner to the UI if the uploaded VPP token is about to expire/has expired.
|
||||
- Added UI updates for VPP feature on host software and my device pages.
|
||||
- Added global activity support for VPP-related activities.
|
||||
- Added UI features for managing VPP apps for iPadOS and iOS hosts.
|
||||
- Updated profile activities to include iOS and iPadOS.
|
||||
- Updated Fleet UI to show OS version compliance on host details page.
|
||||
- Added support for "No teams" on all software pages including adding software installers.
|
||||
- Added DB migration to support VPP software features.
|
||||
- Added DB migration to migrate older team configurations to the new version that includes both installers and App Store apps.
|
||||
- Linux lock/unlock scripts now make use of pam_nologin to keep AD users locked out.
|
||||
- Installed software list now includes Linux .deb packages that are 'on hold'.
|
||||
- Added a special-case to properly name the Notion .exe Windows installer the same as how it will be reported by osquery post-install.
|
||||
- Increased threshold to renew Apple SCEP certificates for MDM enrollments to 180 days.
|
||||
|
||||
### Vulnerability Management
|
||||
|
||||
- Fixed CVEs identified as 'Rejected' in NVD not matching against software.
|
||||
- Fixed false negative vulnerabilities with IntelliJ IDEA CE and PyCharm CE installed via Homebrew.
|
||||
|
||||
### Bug fixes and improvements
|
||||
|
||||
- Dropped support for MySQL 5.7 and raised minimum required to MySQL 8.0.36.
|
||||
- Updated software pre-install to use new GitOps format for query.
|
||||
- Updated UI tooltips for pending OS settings.
|
||||
- Added a migration to migrate older team configurations to the new version that includes both installers and App Store apps.
|
||||
- Fixed a styling issue in the controls > OS settings > disk encryption table.
|
||||
- Fixed a bug in `fleetctl preview` that was causing it to fail if Docker was installed without support for the deprecated `docker-compose` CLI.
|
||||
- Fixed an issue where the app-wide warning banners were not showing on the initial page load.
|
||||
- Fixed a bug where the hosts page would sometimes allow excess pagination.
|
||||
- Fixed a bug where software install results could not be retrieved for deleted hosts in the activity feed.
|
||||
- Fixed path that was incorrect for the download software installer package endpoint `GET /software/titles/:software_title_id/package`.
|
||||
- Fixed a bug that set `last_enrolled_at` during orbit re-enrollment, which caused osquery enroll failures when `FLEET_OSQUERY_ENROLL_COOLDOWN` is set.
|
||||
- Fixed the "Available for install" filter in the host's software page so that installers that were requested to be installed on the host (regardless of installation status) also show up in the list.
|
||||
- Fixed a bug where Fleet google calendar events generated by Fleet <= 4.53.0 were not correctly processed by 4.54.0.
|
||||
- Fixed a bug in `fleetctl preview` that was causing it to fail if Docker was installed without support for the deprecated `docker-compose` CLI.
|
||||
- Fixed a bug where software install results could not be retrieved for deleted hosts in the activity feed.
|
||||
- Fixed a bug where a software installer (a package or a VPP app) that has been installed on a host still shows up as "Available for install" and can still be requested to be installed after the host is transferred to a different team without that installer (or after the installer is deleted).
|
||||
- Fixed the "Available for install" filter in the host's software page so that installers that were requested to be installed on the host (regardless of installation status) also show up in the list.
|
||||
|
||||
## Fleet 4.54.1 (Jul 24, 2024)
|
||||
|
||||
### Bug fixes
|
||||
- Fixed a startup bug by performing an early restart of orbit if an agent options setting has changed.
|
||||
- Implemented a small refactor of orbit subsystems.
|
||||
- Removed the `--version` flag from the `fleetctl package` command. The version of the package can now be controlled by the `--orbit-channel` flag.
|
||||
- Fixed a bug that set `last_enrolled_at` during orbit re-enrollment, which caused osquery enroll failures when `FLEET_OSQUERY_ENROLL_COOLDOWN` is set .
|
||||
- In `fleetctl package` command, removed the `--version` flag. The version of the package can be controlled by `--orbit-channel` flag.
|
||||
- Fixed a bug where Fleet google calendar events generated by Fleet <= 4.53.0 were not correctly processed by 4.54.0.
|
||||
- Re-enabled cached logins after windows Unlock.
|
||||
|
||||
|
||||
|
||||
## Ready to upgrade?
|
||||
|
||||
Visit our [Upgrade guide](https://fleetdm.com/docs/deploying/upgrading-fleet) in the Fleet docs for instructions on updating to Fleet 4.55.0.
|
||||
|
||||
<meta name="category" value="releases">
|
||||
<meta name="authorFullName" value="JD Strong">
|
||||
<meta name="authorGitHubUsername" value="spokanemac">
|
||||
<meta name="publishedOn" value="2024-08-09">
|
||||
<meta name="articleTitle" value="Fleet 4.55.0 | MySQL 8, arm64 support, FileVault improvements, VPP support.">
|
||||
<meta name="articleImageUrl" value="../website/assets/images/articles/fleet-4.55.0-1600x900@2x.png">
|
||||
153
articles/fleet-4.56.0.md
Normal file
153
articles/fleet-4.56.0.md
Normal file
|
|
@ -0,0 +1,153 @@
|
|||
# Fleet 4.56.0 | Enhanced MDM migration, Exact CVE Search, and Self-Service VPP Apps.
|
||||
|
||||

|
||||
|
||||
Fleet 4.56.0 is live. Check out the full [changelog](https://github.com/fleetdm/fleet/releases/tag/fleet-v4.56.0) or continue reading to get the highlights.
|
||||
For upgrade instructions, see our [upgrade guide](https://fleetdm.com/docs/deploying/upgrading-fleet) in the Fleet docs.
|
||||
|
||||
## Highlights
|
||||
* Improved end-user MDM migration
|
||||
* Enforce minimum OS version for MDM enrollment
|
||||
* Exact match CVE search
|
||||
* Software vulnerabilities severity filter
|
||||
* Self-service VPP apps
|
||||
* Multiple ABM and VPP support
|
||||
|
||||
|
||||
### Improved end-user MDM migration
|
||||
|
||||
Fleet has improved the end-user MDM migration workflow on macOS by enabling the migration of hosts manually enrolled in a third-party MDM over to Fleet MDM using the Fleet Desktop application. Previously, this capability was limited to hosts enrolled through Apple's Automated Device Enrollment (ADE), but with this update, manually enrolled hosts can now be seamlessly migrated to Fleet MDM. This feature is specifically available for macOS Sonoma devices (macOS 14 or greater). It makes the migration process more flexible and accessible for organizations looking to centralize their MDM management under Fleet. This enhancement simplifies the transition to Fleet MDM for a broader range of macOS devices, ensuring that all hosts can be managed consistently and securely.
|
||||
|
||||
|
||||
### Enforce minimum OS version for MDM enrollment
|
||||
|
||||
Fleet now enforces a minimum operating system (OS) requirement for macOS devices before they can be enrolled into Fleet's MDM. This feature ensures that only devices running a specified minimum macOS version can be enrolled, helping organizations maintain a consistent security and compliance baseline across their fleet. By setting a minimum OS requirement, Fleet prevents older, potentially less secure macOS versions from being managed under its MDM, thereby reducing vulnerabilities and ensuring all enrolled devices meet the organization's standards. This update enhances Fleet's ability to enforce security policies from the outset, ensuring that all devices in the fleet are up-to-date and capable of supporting the latest security and management features.
|
||||
|
||||
|
||||
### Exact match CVE search
|
||||
|
||||
Fleet has enhanced its CVE (Common Vulnerabilities and Exposures) search functionality by introducing exact match searching, allowing users to quickly and accurately find specific vulnerabilities across their fleet. This improvement ensures that security teams can pinpoint the exact CVE they are investigating without sifting through irrelevant results, streamlining the vulnerability management process. Additionally, Fleet provides better context in cases where no results are found, helping users understand why a particular CVE might not be present in their environment. This update improves the overall user experience in vulnerability management, making it easier to maintain security and compliance across all managed devices.
|
||||
|
||||
|
||||
### Software vulnerabilities severity filter
|
||||
|
||||
Fleet has introduced improved filtering capabilities for vulnerable software, allowing users to filter vulnerabilities by severity level. This enhancement enables security teams to prioritize their response efforts by focusing on the most critical vulnerabilities, ensuring that the highest-risk issues are promptly addressed. By providing a straightforward and efficient way to filter vulnerable software based on severity, Fleet helps organizations streamline their vulnerability management processes, reducing the risk of security incidents. This update aligns with Fleet's commitment to providing powerful tools that enhance the efficiency and effectiveness of security operations across all managed devices.
|
||||
|
||||
|
||||
### Self-Service Apple App Store apps
|
||||
|
||||
Fleet enables organizations to assign and install Apple App Store apps purchased through the Volume Purchase Program (VPP) directly via Self-Service using Fleet Desktop. This new feature allows IT administrators to make VPP-purchased apps available to end users seamlessly and flexibly. By integrating VPP app distribution into the Fleet Desktop Self-Service portal, organizations can streamline the deployment of essential software across their macOS devices, ensuring that users have easy access to the tools they need while maintaining control over software distribution. This update enhances the overall user experience and operational efficiency, empowering end users to install approved applications with minimal IT intervention.
|
||||
|
||||
|
||||
### Multiple Apple Business Manager and VPP support
|
||||
|
||||
Fleet now enables administrators to add and manage multiple Apple Business Manager (ABM) and Volume Purchase Program (VPP) tokens within a single Fleet instance. This feature is designed for both Managed Service Providers (MSPs) and large enterprises, allowing them to create separate automatic enrollment and App Store app workflows for different clients or divisions, each with their own ABM and VPP tokens. Whether you’re managing devices for multiple customers or supporting large organizations with distinct divisions, this update simplifies the process of handling macOS, iOS, and iPadOS devices. With support for multiple ABM and VPP connections, Fleet streamlines software and device management across varied environments, providing a scalable solution for both MSPs and enterprises looking to centralize control while maintaining flexibility for different user groups.
|
||||
|
||||
|
||||
## Changes
|
||||
|
||||
**NOTE:** Beginning with Fleet v4.55.0, Fleet no longer supports MySQL 5.7 because it has reached [end of life](https://mattermost.com/blog/mysql-5-7-reached-eol-upgrade-to-mysql-8-x-today/#:~:text=In%20October%202023%2C%20MySQL%205.7,to%20upgrade%20to%20MySQL%208.). The minimum version supported is MySQL 8.0.36.
|
||||
|
||||
## Fleet 4.56.0 (Sep 7, 2024)
|
||||
|
||||
### Endpoint operations
|
||||
|
||||
- Added index to `query_results` DB table to speed up finding last query timestamp for a given query and host.
|
||||
- Added a link in the UI to the error message when a CSR can't be downloaded due to missing private key.
|
||||
- Added a disabled overlay to the Other Workflows modal on the policy page.
|
||||
- Improved performance of live queries to accommodate for higher volumes when utilizing zero-trust workflows.
|
||||
- Improved `fleetctl` gitops error message when trying to change team name to a team that already exists.
|
||||
|
||||
### Device management
|
||||
|
||||
- Added server support for multiple VPP tokens.
|
||||
- Added new endpoints and updated existing endpoints for managing multiple Apple Business Manager tokens.
|
||||
- Added support for S3 to store MDM bootstrap packages (uses the same bucket configuration as for software installers).
|
||||
- Added support to UI for self service VPP software.
|
||||
- Added backend and gitops support for self service VPP.
|
||||
- Added ability for MDM migrations if the host is manually enrolled to a 3rd party MDM.
|
||||
- Added an offline screen to the macOS MDM migration flow.
|
||||
- Added new ABM page to Fleet UI.
|
||||
- Added new VPP page to the fleet UI
|
||||
- Added support to track the Apple Business Manager "terms expired" API error per token, as well as a global flag that gets set as soon as one token has its terms expired.
|
||||
- Updated the instructions on "My device" for MDM migrations on pre-Sonoma macOS hosts.
|
||||
- Updated to allow multiple teams to be assigned to the same VPP Token.
|
||||
- Updated process so that deleting installed software or VPP app now makes it available for re-installation.
|
||||
- Updated to enforce minimum OS version settings during Apple Automated Device Enrollment (ADE).
|
||||
- Updated ABM ingestion so that deleted iOS/iPadOS host will continue to report to Fleet as long as host is in Apple Business Manager (ABM).
|
||||
- Updated so that refetching an offline iOS/iPadOS host will not add new MDM commands to the queue if previous refetch has not completed yet.
|
||||
- Updated UI so that downloading a software installer package now shows the browser's built-in progress bar.
|
||||
- Updated relevant documentation to include references to multiple ABM and VPP tokens.
|
||||
- Consolidated Automatic Enrollment and VPP settings under the MDM settings integration page.
|
||||
- Cleared apps associated with a VPP token if it's moved off of a team.
|
||||
|
||||
### Vulnerability management
|
||||
|
||||
- Added ALAS bulletins as vulnerability source for Amazon Linux (instead of OVAL for Amazon Linux 2, and adds support for Amazon Linux 1, 2022, and 2023).
|
||||
- Added matching rules for July and August Microsoft 365 security updates (https://learn.microsoft.com/en-us/officeupdates/microsoft365-apps-security-updates).
|
||||
- Added the following filters to `/software/titles` and `/software/versions` API endpoints: `exploit: bool`, `min_cvss_score: float`, `max_cvss_score: float`.
|
||||
- Updated software titles/versions tables to allow for filtering by vulnerabilities including severity and known exploit.
|
||||
- Updated to use empty CVE description when the NVD CVE feed doesn't include description entries (instead of panicking).
|
||||
- Updated matching software that is not installed by Fleet so that it shows up as 'Available for install' on host details page.
|
||||
- Updated base images of `fleetdm/fleetctl`, `fleetdm/bomutils` and `fleetdm/wix` to fix critical vulnerabilities found by Trivy.
|
||||
- Updated vulnerability scanning to use `macos` SW target for CPEs of homebrew packages.
|
||||
- Updated vulnerability scanning to not ignore software with non-ASCII en dash and em dash characters.
|
||||
- Updated `GET /api/v1/fleet/vulnerabilities/{cve}` endpoint to add validation of CVE format, and a 204 response. The 204 response indicates that the vulnerability is known to Fleet but not present on any hosts.
|
||||
- Updated the UI to add new empty states for searching vulnerabilities: invalid CVE format searched, a known CVE serached but not present on hosts, not a known CVE searched, exploited vulnerability empty state, operating systems empty state, new icons.
|
||||
|
||||
### Bug fixes and improvements
|
||||
|
||||
- Added support for MySQL 8.4.2 LTS.
|
||||
- Updated Go to go1.22.6.
|
||||
- Updated Fleet server to now accept arguments via stdin. This is useful for passing secrets that you don't want to expose as env vars, in the command line, or in the config file.
|
||||
- Updated text for "Turn on MDM" banners in UI.
|
||||
- Updated ABM host tooltip copy on the manage host page to clarify when host vitals will be available to view.
|
||||
- Updated copy on auotmatic enrollment modal on my device page.
|
||||
- Updated host details activities tooltip and empty state copy to reflect recently added capabilities.
|
||||
- Updated Fleet Free so users see a Premium feature message when clicking to add software.
|
||||
- Updated usage reporting to report statistics on new AI features, maintenance window, and `fleetd`.
|
||||
- Fixed bug where configuration profile was still showing the old label name after the name was updated.
|
||||
- Fixed a bug when a cached prepared statement gets deleted in the MySQL server itself without Fleet knowing.
|
||||
- Fixed a bug where the wrong API path was used to download a software installer.
|
||||
- Fixed the failing_host_count so it is never 0. This count is normally updated once an hour during cleanups_then_aggregation cron job.
|
||||
- Fixed CVE-2024-4030 in Vulncheck feed incorrectly targeting non-Windows hosts.
|
||||
- Fixed a bug where the "Self-service" filter for the list of software and the list of host's software did not take App Store apps into account.
|
||||
- Fixed a bug where the "My device" page in Fleet Desktop did not show the self-service software tab when App Store apps were available as self-install.
|
||||
- Fixed a bug where a software installer (a package or a VPP app) that has been installed on a host still shows up as "Available for install" and can still be requested to be installed after the host is transferred to a different team without that installer (or after the installer is deleted).
|
||||
- Fixed the "Available for install" filter in the host's software page so that installers that were requested to be installed on the host (regardless of installation status) also show up in the list.
|
||||
- Fixed UI popup messages bleeding off viewport in some cases.
|
||||
- Fixed an issue with the scheduling of cron jobs at startup if the job has never run, which caused it to be delayed.
|
||||
- Fixed UI to display the label names in case-insensitive alphabetical order.
|
||||
|
||||
## Fleet 4.55.2 (Sep 05, 2024)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
* Removed validation of APNS certificate from server startup. This was no longer necessary because we now allow for APNS certificates to be renewed in the UI.
|
||||
* Fixed logic to properly catch and log APNs errors.
|
||||
|
||||
## Fleet 4.55.1 (Aug 14, 2024)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
* Added a disabled overlay to the Other Workflows modal on the policy page.
|
||||
* Updated text for "Turn on MDM" banners in UI.
|
||||
* Fixed a bug when a cached prepared statement got deleted in the MySQL server itself without Fleet knowing.
|
||||
* Continued with an empty CVE description when the NVD CVE feed didn't include description entries (instead of panicking).
|
||||
* Scheduled maintenance events are now scheduled over calendar events marked "Free" (not busy) in Google Calendar.
|
||||
* Fixed a bug where the wrong API path was used to download a software installer.
|
||||
* Improved fleetctl gitops error message when trying to change team name to a team that already exists.
|
||||
* Updated ABM (Apple Business Manager) host tooltip copy on the manage host page to clarify when host vitals will be available to view.
|
||||
* Added index to query_results DB table to speed up finding the last query timestamp for a given query and host.
|
||||
* Displayed the label names in case-insensitive alphabetical order in the fleet UI.
|
||||
|
||||
## Ready to upgrade?
|
||||
|
||||
Visit our [Upgrade guide](https://fleetdm.com/docs/deploying/upgrading-fleet) in the Fleet docs for instructions on updating to Fleet 4.56.0.
|
||||
|
||||
<meta name="category" value="releases">
|
||||
<meta name="authorFullName" value="JD Strong">
|
||||
<meta name="authorGitHubUsername" value="spokanemac">
|
||||
<meta name="publishedOn" value="2024-09-07">
|
||||
<meta name="articleTitle" value="Fleet 4.56.0 | Enhanced MDM migration, Exact CVE Search, and Self-Service VPP Apps.">
|
||||
<meta name="articleImageUrl" value="../website/assets/images/articles/fleet-4.56.0-1600x900@2x.png">
|
||||
|
|
@ -1,12 +1,7 @@
|
|||
# Fleet Desktop
|
||||
- [Installing Fleet Desktop](#installing-fleet-desktop)
|
||||
- [Upgrading Fleet Desktop](#upgrading-fleet-desktop)
|
||||
- [Custom Transparency Link](#custom-transparency-link)
|
||||
- [Securing Fleet Desktop](#securing-fleet-desktop)
|
||||
|
||||
Fleet Desktop is a menu bar icon available on macOS, Windows, and Linux.
|
||||
Fleet Desktop is a menu bar icon available on macOS, Windows, and Linux that gives your end users visibility into the security posture of their machine. This unlocks two key benefits:
|
||||
|
||||
At its core, Fleet Desktop gives your end users visibility into the security posture of their machine. This unlocks two key benefits:
|
||||
* Self-remediation: end users can see which policies they are failing and resolution steps, reducing the need for IT and security teams to intervene
|
||||
* Scope transparency: end users can see what the Fleet agent can do on their machines, eliminating ambiguity between end users and their IT and security teams
|
||||
|
||||
|
|
@ -16,10 +11,10 @@ At its core, Fleet Desktop gives your end users visibility into the security pos
|
|||
<iframe src="https://www.youtube.com/embed/cI2vDG3PbVo" allowfullscreen></iframe>
|
||||
</div>
|
||||
|
||||
## Installing Fleet Desktop
|
||||
## Install Fleet Desktop
|
||||
For information on how to install Fleet Desktop, visit: [Adding Hosts](https://fleetdm.com/docs/using-fleet/adding-hosts#fleet-desktop).
|
||||
|
||||
## Upgrading Fleet Desktop
|
||||
## Upgrade Fleet Desktop
|
||||
Once installed, Fleet Desktop will be automatically updated via Fleetd. To learn more, visit: [Self-managed agent updates](https://fleetdm.com/docs/deploying/fleetctl-agent-updates#self-managed-agent-updates).
|
||||
|
||||
## Custom transparency link
|
||||
|
|
@ -32,7 +27,7 @@ On the settings page, go to "Organization Settings" and select "Fleet Desktop."
|
|||
|
||||
For information on how to set the custom transparency link via a YAML configuration file, see the [configuration files](https://fleetdm.com/docs/configuration/fleet-server-configuration#fleet-desktop-settings) documentation.
|
||||
|
||||
## Securing Fleet Desktop
|
||||
## Secure Fleet Desktop
|
||||
|
||||
Requests sent by Fleet Desktop and the web page that opens when clicking on the "My Device" tray item use a [Random (Version 4) UUID](https://www.rfc-editor.org/rfc/rfc4122.html#section-4.4) token to uniquely identify each host.
|
||||
|
||||
|
|
@ -57,7 +52,9 @@ As a consequence, Fleet Desktop will issue a new token if the current token is:
|
|||
|
||||
This change is imperceptible to users, as clicking on the "My device" tray item always uses a valid token. If a user visits an address with an expired token, they will get a message instructing them to click on the tray item again.
|
||||
|
||||
<meta name="title" value="Fleet Desktop">
|
||||
<meta name="pageOrderInSection" value="450">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="zhumo">
|
||||
<meta name="authorFullName" value="Mo Zhu">
|
||||
<meta name="publishedOn" value="2024-04-19">
|
||||
<meta name="articleTitle" value="Fleet Desktop">
|
||||
<meta name="description" value="Learn about Fleet Desktop's features for self-remediation and transparency.">
|
||||
<meta name="navSection" value="The basics">
|
||||
|
|
@ -21,7 +21,7 @@ Fleet provides AI-generated explanations directly in the calendar events, detail
|
|||
## _Maintenance windows_ include:
|
||||
|
||||
* **Personalized scheduling:** Updates are timed based on individual calendar events, so interventions happen when they are least intrusive.
|
||||
* **Automatic rescheduling:** If a scheduled update becomes impractical—due to changes in your calendar, for example—Fleet automatically finds a new appropriate time.
|
||||
* **Rescheduling flexibility:** If a scheduled update becomes impractical for any reason, users have the option to manually move the maintenance window to a more suitable time. We suggest rescheduling within one week to ensure timely updates.
|
||||
* **Enhanced compliance:** With auto-scheduled maintenance windows, compliance with security protocols is maintained effortlessly, ensuring all devices are up to date without manual intervention.
|
||||
|
||||
_Maintenance windows_ is a direct response to common challenges faced in workplace productivity, particularly unplanned disruptions from essential updates. Fleet aims to support smoother, more efficient work environments by incorporating user feedback and addressing these long-standing issues.
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
# Usage statistics
|
||||
# Fleet usage statistics
|
||||
|
||||
Fleet Device Management Inc. periodically collects information about your instance.
|
||||
|
||||
> To disable usage statistics, [see here](#disable-usage-statistics).
|
||||
|
||||
## What is included in usage statistics in Fleet?
|
||||
|
||||
Below is the JSON payload that is sent to Fleet Device Management Inc:
|
||||
|
|
@ -34,6 +36,11 @@ Below is the JSON payload that is sent to Fleet Device Management Inc:
|
|||
"numHostSoftwareInstalledPaths": 999,
|
||||
"numSoftwareCPEs": 999,
|
||||
"numSoftwareCVEs": 999,
|
||||
"numHostsNotResponding": 9,
|
||||
"aiFeaturesDisabled": true,
|
||||
"maintenanceWindowsEnabled": true,
|
||||
"maintenanceWindowsConfigured": true,
|
||||
"numHostsFleetDesktopEnabled": 999,
|
||||
"hostsEnrolledByOperatingSystem": {
|
||||
"darwin": [
|
||||
{
|
||||
|
|
@ -101,8 +108,7 @@ Below is the JSON payload that is sent to Fleet Device Management Inc:
|
|||
]
|
||||
},
|
||||
...
|
||||
],
|
||||
"numHostsNotResponding": 9
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
|
|
@ -134,6 +140,9 @@ To disable usage statistics:
|
|||
|
||||
3. Uncheck the "Enable usage statistics" checkbox and then select "Update settings."
|
||||
|
||||
<meta name="pageOrderInSection" value="1100">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="noahtalerman">
|
||||
<meta name="authorFullName" value="Noah Talerman">
|
||||
<meta name="publishedOn" value="2024-08-13">
|
||||
<meta name="articleTitle" value="Fleet usage statistics">
|
||||
<meta name="description" value="Learn about Fleet's usage statistics and what information is collected.">
|
||||
<meta name="navSection" value="Dig deeper">
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# fleetctl CLI
|
||||
# fleetctl
|
||||
|
||||
fleetctl (pronounced "Fleet control") is a CLI tool for managing Fleet from the command line. fleetctl enables a GitOps workflow with Fleet.
|
||||
fleetctl (pronounced "Fleet control") is a command line interface (CLI) tool for managing Fleet from the command line. fleetctl enables a GitOps workflow with Fleet.
|
||||
|
||||
fleetctl also provides a quick way to work with all the data exposed by Fleet without having to use the Fleet UI or work directly with the Fleet API.
|
||||
|
||||
|
|
@ -32,6 +32,8 @@ npm install -g fleetctl@latest
|
|||
|
||||
Much of the functionality available in the Fleet UI is also available in `fleetctl`. You can run queries, add and remove users, generate Fleet's agent (fleetd) to add new hosts, get information about existing hosts, and more!
|
||||
|
||||
> Note: Unless a logging infrastructure is configured on your Fleet server, osquery-related logs will be stored locally on each device. Read more [here](https://fleetdm.com/guides/log-destinations)
|
||||
|
||||
To see the available commands you can run:
|
||||
|
||||
```sh
|
||||
|
|
@ -197,6 +199,9 @@ This will generate a `tar.gz` file with:
|
|||
- A file containing a set of all the errors that happened in the server during the interval of time defined by the [logging_error_retention_period](https://fleetdm.com/docs/deploying/configuration#logging-error-retention-period) configuration.
|
||||
- Files containing database-specific information.
|
||||
|
||||
<meta name="pageOrderInSection" value="300">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="noahtalerman">
|
||||
<meta name="authorFullName" value="Noah Talerman">
|
||||
<meta name="publishedOn" value="2024-07-04">
|
||||
<meta name="articleTitle" value="fleetctl">
|
||||
<meta name="description" value="Read about fleetctl, a CLI tool for managing Fleet and osquery configurations, running queries, generating Fleet's agent (fleetd) and more.">
|
||||
<meta name="navSection" value="The basics">
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
# Self-managed agent updates
|
||||
# Fleetd updates
|
||||
|
||||
The fleetd agent will periodically check the public Fleet update repository and update Orbit, Fleet Desktop, and/or osquery
|
||||
if it detects a later version.
|
||||
The fleetd agent will periodically check the public Fleet update repository and update Orbit, Fleet Desktop, and/or osquery if it detects a later version.
|
||||
|
||||
To override this behavior, users can set a channel for each component or disable updates altogether. Visit [Adding Hosts](https://fleetdm.com/docs/using-fleet/adding-hosts#fleet-desktop) to learn more.
|
||||
Alternatively, users with a Fleet Premium subscription can self-manage an update server.
|
||||
|
|
@ -160,6 +159,9 @@ fleetctl updates rotate targets
|
|||
|
||||
After the key(s) have been rotated, publish the repository in the same fashion as any other update.
|
||||
|
||||
<meta name="pageOrderInSection" value="400">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="noahtalerman">
|
||||
<meta name="authorFullName" value="Noah Talerman">
|
||||
<meta name="publishedOn" value="2024-04-30">
|
||||
<meta name="articleTitle" value="Fleetd updates">
|
||||
<meta name="description" value="Information on how to manage and secure Fleet agent updates.">
|
||||
<meta name="navSection" value="Dig deeper">
|
||||
114
articles/install-vpp-apps-on-macos-using-fleet.md
Normal file
114
articles/install-vpp-apps-on-macos-using-fleet.md
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
# Install App Store apps (VPP) on macOS, iOS, and iPadOS using Fleet
|
||||
|
||||

|
||||
|
||||
|
||||
Fleet Premium supports the ability to add Apple App Store applications to your software library using the Volume Purchasing Program (VPP) and then install those apps on macOS, iOS, or iPadOS hosts. This guide will walk you through using this feature to add apps from your Apple Business Manager account to Fleet and install those apps on your hosts.
|
||||
|
||||
The Volume Purchasing Program is an Apple initiative that allows organizations to purchase and distribute apps and books in bulk. This program is particularly beneficial for organizations that need to deploy multiple apps to many devices. Key benefits of VPP include:
|
||||
* **Bulk purchasing**: Purchase multiple licenses for an app in one transaction, often with volume discounts.
|
||||
* **Centralized management**: Manage and distribute purchased apps from a central location.
|
||||
* **Licensing flexibility**: Reassign app licenses as needed, ensuring efficient use of resources.
|
||||
* **Streamlined deployment**: Use Fleet to automate the installation and configuration of purchased apps on enrolled devices.
|
||||
* **Self-Service (macOS only)**: Allow users to assign licenses to their own devices as needed.
|
||||
|
||||
By integrating VPP with Fleet, organizations can seamlessly add apps to their software library and deploy them across macOS, iOS, and iPadOS hosts, ensuring that all devices have the necessary applications installed efficiently and effectively.
|
||||
|
||||
## Prerequisites
|
||||
* **MDM features**: to use the VPP integration, you must first enable MDM features in Fleet. See the [MDM setup guide](https://fleetdm.com/docs/using-fleet/mdm-setup) for instructions on enabling MDM features.
|
||||
* **Teams**: Apps can only be added to a specific Team. You can manage teams by selecting your avatar in the top navigation and then **Settings > Teams**. (Note: Apps can also be added to the 'No Team' team, which contains hosts not assigned to any other team.) You can control which team uses which VPP token by assigning teams to the VPP token. Each token may have multiple teams assigned to it, but each team may be assigned to only 1 token.
|
||||
|
||||
> As of Fleet 4.55.0, there is a [known issue](https://github.com/fleetdm/fleet/issues/20686) that uninstalled or deleted VPP apps will continue to show a status of `installed`.
|
||||
|
||||
## Accessing the VPP configuration
|
||||
|
||||
1. **Navigate to the MDM integration settings page**: Click your avatar on the far right of the main navigation menu, and then **Settings > Integrations > "Mobile device management (MDM)"**
|
||||
|
||||
2. **Add your VPP token**: Scroll to the "Volume Purchasing Program (VPP)" section. Click "Add VPP", and then click "Add VPP" again on the following page. Follow the directions on the modal to get your VPP token from Apple Business Manager, and then click the "Upload" button at the bottom to upload it to Fleet.
|
||||
|
||||
3. **Edit the team assignment for the new token**: Find the token in the table of VPP tokens. Click the "Actions" dropdown, and then click "Edit teams". Use the picker to select which team(s) this VPP token should be assigned to.
|
||||
|
||||
## Purchasing apps
|
||||
|
||||
To add apps to Fleet, you must first purchase them through Apple Business Manager, even if they are free. This ensures that all apps are appropriately licensed and available for distribution via the Volume Purchasing Program (VPP). For detailed instructions on selecting and buying content, please refer to Apple’s documentation on [purchasing apps through Apple Business Manager](https://support.apple.com/guide/apple-business-manager/select-and-buy-content-axmc21817890/web).
|
||||
|
||||
## Add an app to Fleet
|
||||
|
||||
1. **Navigate to the Software page**: Click on the "Software" tab in the main navigation menu.
|
||||
|
||||
2. **Select your team**: Click on the "All teams" dropdown in the top left of the page and select your desired team.
|
||||
|
||||
3. **Open the "Add software" modal**: Click on the "Add software" button in the top right of the page.
|
||||
|
||||
4. **View your available apps**: Click on the "App Store (VPP)" tab in the "Add software" modal. The modal will list the apps that you have purchased through VPP but still need to add to Fleet.
|
||||
|
||||
5. **Add an app**: Select an app from the list. You may optionally check the "Self-Service" box at the bottom left of the modal if you wish for the software to be available for user-initiated installs. Finally, click the "Add software" button in the bottom right of the modal. The app should appear in the software list for the selected team.
|
||||
|
||||
## Remove an app from Fleet
|
||||
|
||||
1. **Navigate to the Software page**: Click "Software" in the main navigation menu.
|
||||
|
||||
2. **Find the app you want to remove**: Search for the app using the search bar in the top right corner of the table.
|
||||
|
||||
3. **Access the app's details page**: Click on the app's name in the table.
|
||||
|
||||
4. **Remove the app**: Click on the "Actions" dropdown on the right side of the page. Click "Delete," then click "Delete" on the confirmation modal. Deleting an app will not uninstall the app from the hosts on which it was previously installed.
|
||||
|
||||
## Installing apps on macOS, iOS, and iPadOS hosts
|
||||
|
||||
1. **Add the host to the relevant team.**
|
||||
|
||||
2. **Go to the host's detail page**: Click the "Hosts" tab in the main navigation menu. Filter the hosts by the team, and click the host's name to see its details page.
|
||||
|
||||
3. **Find the app**: Click the "Software" tab on the host details page. Search for the software you added in the software table's search bar. Instead of searching, you can also filter software by clicking the **All software** dropdown and selecting **Available for install.**
|
||||
|
||||
4. **Install the app**: Click the "Actions" dropdown on the far right of the app's entry in the
|
||||
table. Click "Install" to trigger an install. This action will send an MDM command to the host
|
||||
instructing it to install the app. If the host is offline, the upcoming install will show up in
|
||||
the **Details** -> **Activity** -> **Upcoming** tab of this page. After the app is installed and
|
||||
the host details are refetched, the app will show up as **Installed** in the **Software** tab.
|
||||
|
||||
## Installing apps on macOS using self-service
|
||||
|
||||
1. **Open Fleet from the host**: On the host that will be installing an application through self-service, click on the Fleet Desktop tray icon, then click **My Device**. This will open the browser to the device's page on Fleet.
|
||||
|
||||
2. **Navigate to the self-service tab**: Click on the **Self-Service** tab under the device's details.
|
||||
|
||||
3. **Locate the app and click install**: Scroll through the list of software to find the app you would like to install, then click the **Install** button underneath it.
|
||||
|
||||
## Renewing an expired or expiring VPP token
|
||||
|
||||
When one of your uploaded VPP tokens has expired or is within 30 days of expiring, you will see a warning
|
||||
banner at the top of page reminding you to renew your token. You can do this with the following steps:
|
||||
|
||||
1. **Navigate to the MDM integration settings page**: Click your avatar on the far right of the main navigation menu, and then **Settings > Integrations > "Mobile device management (MDM)"** Scroll to the "Volume Purchasing Program (VPP)" section, and click "Edit".
|
||||
|
||||
2. **Renew the token**: Find the VPP token that you want to renew in the table. Token status is indicated in the "Renew date" column: tokens less than 30 days from expiring will have a yellow indicator, and expired tokens will have a red indicator. Click the "Actions" dropdown for the token and then click "Renew". Follow the instructions in the modal to download a new token from Apple Business Manager and then upload the new token to Fleet.
|
||||
|
||||
## Deleting a VPP token
|
||||
|
||||
To remove VPP tokens from Fleet:
|
||||
|
||||
1. **Navigate to the MDM integration settings page**: Click your avatar on the far right of the main navigation menu, and then **Settings > Integrations > "Mobile device management (MDM)"** Scroll to the "Volume Purchasing Program (VPP)" section, and click "Edit".
|
||||
|
||||
2. **Delete the token**: Find the VPP token that you want to delete in the table. Click the "Actions" dropdown for that token, and then click "Delete". Click "Delete" in the confirmation modal to finish deleting the token.
|
||||
|
||||
## Managing apps with GitOps
|
||||
|
||||
To manage App Store apps using Fleet's best practice GitOps, check out the `software` key in the GitOps reference documentation [here](https://fleetdm.com/docs/using-fleet/gitops#software).
|
||||
|
||||
## REST API
|
||||
|
||||
Fleet also provides a REST API for managing apps programmatically. You can add, install, and delete apps via this API and manage your organization’s VPP tokens. Learn more about Fleet's [REST API](https://fleetdm.com/docs/rest-api/rest-api).
|
||||
|
||||
## Conclusion
|
||||
|
||||
This feature extends Fleet's capabilities for managing macOS, iOS, and iPadOS hosts. Whether you manage your hosts' software via uploaded installers or via the App Store VPP integration, Fleet provides you with the tools you need to manage your hosts effectively.
|
||||
|
||||
<meta name="articleTitle" value="Install VPP apps on macOS, iOS, and iPadOS using Fleet">
|
||||
<meta name="authorFullName" value="Jahziel Villasana-Espinoza">
|
||||
<meta name="authorGitHubUsername" value="jahzielv">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="publishedOn" value="2024-08-12">
|
||||
<meta name="articleImageUrl" value="../website/assets/images/articles/install-vpp-apps-on-macos-using-fleet-1600x900@2x.png">
|
||||
<meta name="description" value="This guide will walk you through installing VPP apps on macOS, iOS, and iPadOS using Fleet.">
|
||||
|
|
@ -1,19 +1,5 @@
|
|||
# Log destinations
|
||||
|
||||
- [Log destinations](#log-destinations)
|
||||
- [Amazon Kinesis Data Firehose](#amazon-kinesis-data-firehose)
|
||||
- [Snowflake](#snowflake)
|
||||
- [Splunk](#splunk)
|
||||
- [Amazon Kinesis Data Streams](#amazon-kinesis-data-streams)
|
||||
- [AWS Lambda](#aws-lambda)
|
||||
- [Google Cloud Pub/Sub](#google-cloud-pubsub)
|
||||
- [Apache Kafka](#apache-kafka)
|
||||
- [Stdout](#stdout)
|
||||
- [Filesystem](#filesystem)
|
||||
- [Sending logs outside of Fleet](#sending-logs-outside-of-fleet)
|
||||
|
||||
This document provides a list of the supported log destinations in Fleet.
|
||||
|
||||
Log destinations can be used in Fleet to log:
|
||||
- Osquery [status logs](https://osquery.readthedocs.io/en/stable/deployment/logging/#status-logs).
|
||||
|
||||
|
|
@ -23,11 +9,27 @@ Log destinations can be used in Fleet to log:
|
|||
|
||||
|
||||
To configure each log destination, you must set the correct logging configuration options in Fleet.
|
||||
|
||||
Check out the reference documentation for:
|
||||
- [Osquery status logging configuration options](https://fleetdm.com/docs/deploying/configuration#osquery-status-log-plugin).
|
||||
- [Osquery result logging configuration options](https://fleetdm.com/docs/deploying/configuration#osquery-result-log-plugin).
|
||||
- [Activity audit logging configuration options](https://fleetdm.com/docs/deploying/configuration#activity_audit_log_plugin).
|
||||
|
||||
This guide provides a list of the supported log destinations in Fleet.
|
||||
|
||||
### In this guide:
|
||||
|
||||
- [Amazon Kinesis Data Firehose](#amazon-kinesis-data-firehose)
|
||||
- [Snowflake](#snowflake)
|
||||
- [Splunk](#splunk)
|
||||
- [Amazon Kinesis Data Streams](#amazon-kinesis-data-streams)
|
||||
- [AWS Lambda](#aws-lambda)
|
||||
- [Google Cloud Pub/Sub](#google-cloud-pubsub)
|
||||
- [Apache Kafka](#apache-kafka)
|
||||
- [Stdout](#stdout)
|
||||
- [Filesystem](#filesystem)
|
||||
- [Sending logs outside of Fleet](#sending-logs-outside-of-fleet)
|
||||
|
||||
## Amazon Kinesis Data Firehose
|
||||
|
||||
Logs are written to [Amazon Kinesis Data Firehose (Firehose)](https://aws.amazon.com/kinesis/data-firehose/).
|
||||
|
|
@ -145,6 +147,9 @@ See the [osquery logging documentation](https://osquery.readthedocs.io/en/stable
|
|||
|
||||
If `--logger_plugin=tls` is used with osquery clients, the following configuration can be applied on the Fleet server for handling the incoming logs.
|
||||
|
||||
<meta name="pageOrderInSection" value="600">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="rachaelshaw">
|
||||
<meta name="authorFullName" value="Rachael Shaw">
|
||||
<meta name="publishedOn" value="2023-11-02">
|
||||
<meta name="articleTitle" value="Log destinations">
|
||||
<meta name="description" value="Learn about supported log destinations in Fleet, including Amazon Kinesis, AWS Lambda Snowflake, Splunk, and more.">
|
||||
<meta name="navSection" value="Security compliance">
|
||||
65
articles/macos-mdm-setup.md
Normal file
65
articles/macos-mdm-setup.md
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
# macOS MDM setup
|
||||
|
||||
To turn on macOS, iOS, and iPadOS MDM features, follow the instructions on this page to connect Fleet to Apple Push Notification service (APNs).
|
||||
|
||||
To use automatic enrollment (aka zero-touch) features on macOS, iOS, and iPadOS, follow instructions to connect Fleet with Apple Business Manager (ABM).
|
||||
|
||||
To turn on Windows MDM features, head to this [Windows MDM setup article](https://fleetdm.com/guides/windows-mdm-setup).
|
||||
|
||||
## Apple Push Notification service (APNs)
|
||||
|
||||
Apple uses APNs to authenticate and manage interactions between Fleet and hosts.
|
||||
|
||||
To connect Fleet to APNs or renew APNs, head to the **Settings > Integrations > Mobile device management (MDM)** page.
|
||||
|
||||
> Apple requires that APNs certificates are renewed annually.
|
||||
> - If your certificate expires, you will have to turn MDM off and back on for all macOS hosts.
|
||||
> - Be sure to use the same Apple ID from year-to-year. If you don't, you will have to turn MDM off and back on for all macOS hosts.
|
||||
|
||||
## Apple Business Manager (ABM)
|
||||
|
||||
> Available in Fleet Premium
|
||||
|
||||
To connect Fleet to ABM, you have to add an ABM token to Fleet. To add an ABM token:
|
||||
|
||||
1. Navigate to the **Settings > Integrations > Mobile device management (MDM)** page.
|
||||
2. Under "Automatic enrollment", click "Add ABM", and then click "Add ABM" again on the next page. Follow the instructions in the modal and upload an ABM token to Fleet.
|
||||
|
||||
When one of your uploaded ABM tokens has expired or is within 30 days of expiring, you will see a warning
|
||||
banner at the top of page reminding you to renew your token.
|
||||
|
||||
To renew an ABM token:
|
||||
|
||||
1. Navigate to the **Settings > Integrations > Mobile device management (MDM)** page.
|
||||
2. Under "Automatic enrollment", click "Edit", and then find the token that you want to renew. Token status is indicated in the "Renew date" column: tokens less than 30 days from expiring will have a yellow indicator, and expired tokens will have a red indicator. Click the "Actions" dropdown for the token and then click "Renew". Follow the instructions in the modal to download a new token from Apple Business Manager and then upload the new token to Fleet.
|
||||
|
||||
After connecting Fleet to ABM, set Fleet to be the MDM for all Macs:
|
||||
|
||||
1. Log in to [Apple Business Manager](https://business.apple.com)
|
||||
2. Click your profile icon in the bottom left
|
||||
3. Click **Preferences**
|
||||
4. Click **MDM Server Assignment** and click **Edit** next to **Default Server Assignment**.
|
||||
5. Switch **Mac**, **iPhone**, and **iPad** to Fleet.
|
||||
|
||||
macOS, iOS, and iPadOS hosts listed in ABM and associated to a Fleet instance with MDM enabled will sync to Fleet and appear in the Hosts view with the **MDM status** label set to "Pending".
|
||||
|
||||
Hosts that automatically enroll will be assigned to a default team. You can configure the default team for macOS, iOS, and iPadOS hosts by:
|
||||
|
||||
1. Navigating to the **Settings > Integrations > Mobile device management (MDM)** page and clicking "Edit" under "Automatic enrollment".
|
||||
2. Click on the "Actions" dropdown for the ABM token you want to update, and then click "Edit teams".
|
||||
3. Use the dropdowns in the modal to select the default team for each type of host, and click "Save" to save your selections.
|
||||
|
||||
If no default team is set for a host platform (macOS, iOS, or iPadOS), then newly enrolled hosts of that platform will be placed in "No team".
|
||||
|
||||
> A host can be transferred to a new (not default) team before it enrolls. In the Fleet UI, you can do this under **Settings** > **Teams**.
|
||||
|
||||
### Simple Certificate Enrollment Protocol (SCEP)
|
||||
|
||||
Fleet uses SCEP certificates (1 year expiry) to authenticate the requests hosts make to Fleet. Fleet renews each host's SCEP certificates automatically every 180 days.
|
||||
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="zhumo">
|
||||
<meta name="authorFullName" value="Mo Zhu">
|
||||
<meta name="publishedOn" value="2024-07-02">
|
||||
<meta name="articleTitle" value="macOS MDM setup">
|
||||
<meta name="description" value="Learn how to turn on MDM features in Fleet.">
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
_Available in Fleet Premium_
|
||||
|
||||
In Fleet, you can customize the out-of-the-box macOS setup experience for your end users:
|
||||
In Fleet, you can customize the out-of-the-box macOS Setup Assistant with Remote Management and Automated Device Enrollment (ADE) for end users:
|
||||
|
||||
* Require end users to authenticate with your identity provider (IdP) and agree to an end user license agreement (EULA) before they can use their new Mac.
|
||||
|
||||
|
|
@ -12,7 +12,7 @@ In Fleet, you can customize the out-of-the-box macOS setup experience for your e
|
|||
|
||||
In addition to the customization above, Fleet automatically installs the fleetd agent during out-of-the-box macOS setup. This agent is responsible for reporting host vitals to Fleet and presenting Fleet Desktop to the end user.
|
||||
|
||||
macOS setup features require connecting Fleet to Apple Business Manager (ABM). Learn how [here](./mdm-setup.md#apple-business-manager-abm).
|
||||
macOS setup features require connecting Fleet to Apple Business Manager (ABM). Learn how [here](https://fleetdm.com/guides/macos-mdm-setup#apple-business-manager-abm).
|
||||
|
||||
## End user authentication and EULA
|
||||
|
||||
|
|
@ -20,7 +20,7 @@ Using Fleet, you can require end users to authenticate with your identity provid
|
|||
|
||||
### End user authentication
|
||||
|
||||
To require end user authentication, first [configure single sign-on (SSO)](../Deploy/single-sign-on-sso.md). Next, enable end user authentication by heading to to **Controls > Setup experience End user authentication** or use [Fleet's GitOps workflow](https://github.com/fleetdm/fleet-gitops).
|
||||
To require end user authentication, first [configure single sign-on (SSO)](https://fleetdm.com/docs/deploy/single-sign-on-sso). Next, enable end user authentication by heading to to **Controls > Setup experience End user authentication** or use [Fleet's GitOps workflow](https://github.com/fleetdm/fleet-gitops).
|
||||
|
||||
If you've already configured SSO in Fleet, create a new SAML app in your IdP. In your new app, use `https://<your_fleet_url>/api/v1/fleet/mdm/sso/callback` for the SSO URL.
|
||||
|
||||
|
|
@ -155,13 +155,15 @@ Testing requires a test Mac that is present in your Apple Business Manager (ABM)
|
|||
|
||||
2. In Fleet, navigate to the Hosts page and find your Mac. Make sure that the host's **MDM status** is set to "Pending."
|
||||
|
||||
> New Macs purchased through Apple Business Manager appear in Fleet with MDM status set to "Pending." Learn more about these hosts [here](./mdm-setup.md#pending-hosts).
|
||||
> New Macs purchased through Apple Business Manager appear in Fleet with MDM status set to "Pending." Learn more about these hosts [here](https://fleetdm.com/guides/macos-mdm-setup#apple-business-manager-abm).
|
||||
|
||||
3. Transfer this host to the "Workstations (canary)" team by selecting the checkbox to the left of the host and selecting **Transfer** at the top of the table. In the modal, choose the Workstations (canary) team and select **Transfer**.
|
||||
|
||||
4. Boot up your test Mac and complete the custom out-of-the-box setup experience.
|
||||
|
||||
<meta name="pageOrderInSection" value="1506">
|
||||
<meta name="title" value="macOS setup experience">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="noahtalerman">
|
||||
<meta name="authorFullName" value="Noah Talerman">
|
||||
<meta name="publishedOn" value="2024-07-03">
|
||||
<meta name="articleTitle" value="macOS setup experience">
|
||||
<meta name="description" value="Customize your macOS setup experience with Fleet Premium by managing user authentication, Setup Assistant panes, and installing bootstrap packages.">
|
||||
<meta name="navSection" value="Device management">
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
# Commands
|
||||
# MDM commands
|
||||
|
||||
In Fleet you can run MDM commands to take action on your macOS, iOS, iPadOS, and Windows hosts, like restarting the host, remotely.
|
||||
|
||||
|
|
@ -83,19 +83,11 @@ You can view a list of the 1,000 latest commands:
|
|||
1. Run `fleetctl get mdm-commands`
|
||||
2. View the list of latest commands, most recent first, along with the timestamp, targeted hostname, command type, execution status and command ID.
|
||||
|
||||
The command ID can be used to view command results as documented in [step 4 of the previous section](#step-4-view-the-commands-results).
|
||||
The command ID can be used to view command results as documented in [step 4 of the previous section](#step-4-view-the-commands-results).
|
||||
|
||||
The possible statuses for macOS, iOS, and iPadOS hosts are the following:
|
||||
|
||||
* Pending: the command has yet to run on the host. The host will run the command the next time it comes online.
|
||||
* NotNow: the host responded with "NotNow" status via the MDM protocol: the host received the command, but couldn’t execute it. The host will try to run the command the next time it comes online.
|
||||
* Acknowledged: the host responded with "Acknowledged" status via the MDM protocol: the host processed the command successfully.
|
||||
* Error: the host responded with "Error" status via the MDM protocol: an error occurred. Run the `fleetctl get mdm-command-results --id=<insert-command-id` to view the error.
|
||||
* CommandFormatError: the host responded with "CommandFormatError" status via the MDM protocol: a protocol error occurred, which can result from a malformed command. Run the `fleetctl get mdm-command-results --id=<insert-command-id` to view the error.
|
||||
|
||||
The possible statuses for Windows hosts are documented in Microsoft's documentation [here](https://learn.microsoft.com/en-us/windows/client-management/oma-dm-protocol-support#syncml-response-status-codes).
|
||||
|
||||
<meta name="pageOrderInSection" value="1507">
|
||||
<meta name="title" value="Commands">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="noahtalerman">
|
||||
<meta name="authorFullName" value="Noah Talerman">
|
||||
<meta name="publishedOn" value="2024-06-12">
|
||||
<meta name="articleTitle" value="MDM commands">
|
||||
<meta name="description" value="Learn how to run custom MDM commands on hosts using Fleet.">
|
||||
<meta name="navSection" value="Device management">
|
||||
123
articles/mdm-migration.md
Normal file
123
articles/mdm-migration.md
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
# MDM migration
|
||||
|
||||
This guide provides instructions for migrating devices from your current MDM solution to Fleet.
|
||||
|
||||
> For seamless MDM migration, [view this guide](https://fleetdm.com/guides/seamless-mdm-migration).
|
||||
|
||||
## Requirements
|
||||
|
||||
- A [deployed Fleet instance](https://fleetdm.com/docs/deploy/deploy-fleet)
|
||||
- Fleet is connected to Apple Push Notification service (APNs) and Apple Business Manager (ABM). [See macOS MDM setup](https://fleetdm.com/guides/macos-mdm-setup)
|
||||
|
||||
## Migrate hosts
|
||||
|
||||
To migrate hosts, we will do the following steps:
|
||||
|
||||
1. Enroll hosts to Fleet
|
||||
2. Assign hosts in Apple Business Manager (ABM) to Fleet
|
||||
3. Choose migration workflow and migrate hosts
|
||||
|
||||
### Step 1: enroll hosts to Fleet
|
||||
|
||||
1. First, enroll your hosts to Fleet by installing Fleet's agent (fleetd). Learn how [here](https://fleetdm.com/guides/enroll-hosts).
|
||||
2. Ensure your end users have access to an admin account on their Mac. End users won't be able to migrate on their own if they have a standard account.
|
||||
|
||||
### Step 2: assign hosts in Apple Business Manager (ABM) to Fleet
|
||||
|
||||
1. In ABM, unassign your hosts from your current MDM solution by selecting **Devices** and then selecting **All Devices**. Then, select **Edit** next to **Edit MDM Server**, select **Unassign from the current MDM**, and select **Continue**.
|
||||
|
||||
2. Assign these hosts to Fleet: select **Devices** and then select **All Devices**. Then, select **Edit** next to **Edit MDM Server**, select **Assign to the following MDM:**, select your Fleet server in the dropdown, and select **Continue**.
|
||||
|
||||
### Step 3: choose migration workflow and migrate hosts
|
||||
|
||||
There are two migration workflows in Fleet: default and end user.
|
||||
|
||||
The default migration workflow requires that the IT admin unenrolls hosts from the old MDM solution before the end user can complete migration. This will result in a gap in MDM coverage until the end user completes migration.
|
||||
|
||||
The end user migration workflow allows the user to kick off migration by unenrolling from the old MDM solution on their own. Once the user is unenrolled, they're prompted to turn on MDM features in Fleet, reducing the gap in MDM coverage.
|
||||
|
||||
#### Default workflow
|
||||
|
||||
End user experience:
|
||||
|
||||
- After a host is unenrolled from your current MDM solution, the end user will be prompted with Apple's **Remote Management** full-screen popup if the host is assigned to Fleet in ABM.
|
||||
<img width="1400" alt="macOS Remote Management popup" src="https://github.com/user-attachments/assets/084946a5-1658-4d8c-852d-3cf5f5d58655">
|
||||
- If the host is not assigned to Fleet in ABM (manual enrollment), the end user will be given the option to download the MDM enrollment profile on their **My device page**.
|
||||
<img width="1600" alt="Fleet icon in menu bar" src="https://raw.githubusercontent.com/fleetdm/fleet/main/website/assets/images/articles/fleet-desktop-says-hello-world-cover-1600x900@2x.jpg">
|
||||
<img width="1400" alt="My device page - turn on MDM" src="https://user-images.githubusercontent.com/5359586/229950406-98343bf7-9653-4117-a8f5-c03359ba0d86.png">
|
||||
|
||||
Configuration:
|
||||
|
||||
- To kick off the default workflow, unenroll the hosts to be migrated in your current MDM solution. MacOS does not allow a host to be connected to multiple MDM solutions at once.
|
||||
|
||||
#### End user workflow
|
||||
|
||||
> Available in Fleet Premium
|
||||
|
||||
End user experience:
|
||||
|
||||
- To watch an animation of the end user experience during the migration workflow, head to **Settings > Integrations > Mobile device management (MDM)** in the Fleet UI, and scroll down to the **End user migration workflow** section.
|
||||
|
||||
Configuration:
|
||||
|
||||
- In Fleet, you can configure the end user workflow using the Fleet UI, Fleet API, or Fleet's GitOps workflow.
|
||||
|
||||
- After configuring the end user workflow, instruct your end users to select the Fleet icon in their menu bar, select **Migrate to Fleet** and follow the on-screen instructions to migrate to Fleet.
|
||||
|
||||
- Fleet UI:
|
||||
1. Select the avatar on the right side of the top navigation and select **Settings > Integrations > Mobile device management (MDM)**.
|
||||
2. Scroll down to the **End user migration workflow** section and select the toggle to enable the workflow.
|
||||
3. Under **Mode**, choose a mode, enter the webhook URL for your automation tool (e.g., Tines) under **Webhook URL**, and select **Save**.
|
||||
4. During the end user migration workflow, an end user's device will have its selected system theme (light or dark) applied. If your logo is not easy to see on both light and dark backgrounds, you can optionally set a logo for each theme:
|
||||
Head to **Settings** > **Organization settings** > **Organization info**, add URLs to your logos in the **Organization avatar URL (for dark backgrounds)** and **Organization avatar URL (for light backgrounds)** fields, and select **Save**.
|
||||
- Fleet API: API documentation is [here](https://fleetdm.com/docs/rest-api/rest-api#mdm-macos-migration)
|
||||
- GitOps:
|
||||
- To manage macOS MDM migration configuration using Fleet's best practice GitOps, check out the `macos_migration` key in the [GitOps reference documentation](https://fleetdm.com/docs/configuration/yaml-files#macos-migration).
|
||||
- To manage your organization's logo for dark and light backgrounds using Fleet's best practice GitOps, check out the `org_info` key in the [GitOps reference documentation](https://fleetdm.com/docs/configuration/yaml-files#org-info).
|
||||
|
||||
## Check migration progress
|
||||
|
||||
To see a report of which hosts have successfully migrated to Fleet, have MDM features off, or are still enrolled to your old MDM solution head to the **Dashboard** page by clicking the icon on the left side of the top navigation bar.
|
||||
|
||||
Then, scroll down to the **Mobile device management (MDM)** section of the Dashboard. You'll see a breakdown of which hosts have successfully migrated to Fleet, which have MDM features disabled, and which are still enrolled in the previous MDM solution.
|
||||
|
||||
## FileVault recovery keys
|
||||
|
||||
_Available in Fleet Premium_
|
||||
|
||||
When migrating from a previous MDM, end users must restart or log out of their device to escrow FileVault keys to Fleet. The **My device** page in Fleet Desktop will present users with instructions on how to reset their key.
|
||||
|
||||
To start, enforce FileVault disk encryption and escrow recovery keys in Fleet. Learn how [here](https://fleetdm.com/guides/enforce-disk-encryption).
|
||||
|
||||
After turning on disk encryption in Fleet, share [these guided instructions](#how-to-turn-on-disk-encryption) with your end users.
|
||||
|
||||
### How to turn on disk encryption
|
||||
|
||||
1. Select the Fleet icon in your menu bar and select **My device**.
|
||||
|
||||

|
||||
|
||||
2. On your **My device** page, follow the disk encryption instructions in the yellow banner.
|
||||
- If you don’t see the yellow banner, select the purple **Refetch** button at the top of the page.
|
||||
- If you still don't see the yellow banner after a couple minutes or if the **My device** page presents you with an error, please contact your IT administrator.
|
||||
|
||||
<img width="1399" alt="My device page - turn on disk encryption" src="https://user-images.githubusercontent.com/5359586/229950451-cfcd2314-a993-48db-aecf-11aac576d297.png">
|
||||
|
||||
## Activation Lock
|
||||
|
||||
In Fleet, the [Activation Lock](https://support.apple.com/en-us/HT208987) feature is disabled by default for automatically enrolled (ADE) hosts.
|
||||
|
||||
In 2024, Apple added the ability to manage activation lock in Apple Business Manager (ABM). For devices that are owned by the business and available in ABM, you can [turn off activation lock remotely](https://support.apple.com/en-ca/guide/apple-business-manager/axm812df1dd8/web).
|
||||
|
||||
If a device is not available in ABM and has Activation Lock enabled, we recommend asking the end user to follow these instructions to disable Activation Lock before migrating the device to Fleet: https://support.apple.com/en-us/HT208987.
|
||||
|
||||
If the Activation Lock is enabled, you will need the Activation Lock bypass code to wipe and reuse the Mac successfully.
|
||||
|
||||
However, Activation Lock bypass codes can only be retrieved from the Mac up to 30 days after the device is enrolled. This means that when migrating from your old MDM solution, it’s likely that you’ll be unable to retrieve the Activation Lock bypass code.
|
||||
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="zhumo">
|
||||
<meta name="authorFullName" value="Mo Zhu">
|
||||
<meta name="publishedOn" value="2024-08-14">
|
||||
<meta name="articleTitle" value="MDM migration">
|
||||
<meta name="description" value="Instructions for migrating hosts away from an old MDM solution to Fleet.">
|
||||
|
|
@ -121,7 +121,7 @@ On macOS, there are two utilities that enable osquery process auditing: [OpenBSM
|
|||
To use the `es_process_events` tables, use the flag `--disable_endpointsecurity=false`. See the [EndpointSecurity instructions](https://osquery.readthedocs.io/en/latest/deployment/process-auditing/#auditing-processes-with-endpointsecurity) for more information. To use `process_events` and `socket_events` with OpenBSM, see the [OpenBSM instructions](https://osquery.readthedocs.io/en/latest/deployment/process-auditing/#auditing-processes-with-openbsm).
|
||||
|
||||
#### Windows
|
||||
Currently, osquery does not support process auditing for Windows. To learn more about process auditing on Windows, visit [Microsoft's security auditing overview](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/security-auditing-overview). Fleet is tracking work to build process auditing for Windows in osquery. [Stay up to date on GitHub](https://github.com/fleetdm/fleet/issues/7732).
|
||||
Fleet supports auditing process events on Windows via the `process_etw_events` table. To learn more about process auditing on Windows, visit [Microsoft's security auditing overview](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/security-auditing-overview). Fleet is tracking work to add file auditing for Windows in osquery. [Stay up to date on GitHub](https://github.com/fleetdm/fleet/issues/20946).
|
||||
|
||||
### YARA scanning
|
||||
[YARA](https://virustotal.github.io/yara/) is a malware research and detection tool available on Linux and macOS that allows users to create descriptions of malware families based on patterns of text or binary code. Each potential piece of malware is matched against a YARA rule and triggers if the specified conditions are met.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Osquery children processes
|
||||
# Osquery watchdog
|
||||
|
||||
Osquery will run a watcher process to keep track of any child process and any managed extensions. What follows is a description of what happens during the watcher REPL and under what circumstances the child process and/or managed extensions are terminated.
|
||||
|
||||
|
|
@ -25,6 +25,9 @@ If the managed extension is `Non-existent` (either because it was `Non-existent`
|
|||
|
||||
Lastly, we check the state of the watcher process itself. If it is deemed unhealthy because of resource contention, then the osquery process is shut down.
|
||||
|
||||
<meta name="pageOrderInSection" value="700">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="juan-fdz-hawa">
|
||||
<meta name="authorFullName" value="Juan Fernandes">
|
||||
<meta name="publishedOn" value="2023-07-28">
|
||||
<meta name="articleTitle" value="Osquery watchdog">
|
||||
<meta name="description" value="Learn about how osquery process manages child processes and managed extensions in Fleet.">
|
||||
<meta name="navSection" value="Osquery management">
|
||||
|
|
@ -151,7 +151,9 @@ if $err != '' {
|
|||
|
||||
The above example includes the XML payload for the `EnableRemoteDesktop` MDM command. Learn more about creating the payload for other custom commands [here](./MDM-commands.md).
|
||||
|
||||
<meta name="pageOrderInSection" value="1510">
|
||||
<meta name="title" value="Puppet module">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="noahtalerman">
|
||||
<meta name="authorFullName" value="Noah Talerman">
|
||||
<meta name="publishedOn" value="2024-05-24">
|
||||
<meta name="articleTitle" value="Puppet module">
|
||||
<meta name="description" value="Learn how to use Fleet's Puppet module to automatically assign custom configuration profiles on your macOS hosts.">
|
||||
<meta name="navSection" value="Device management">
|
||||
|
|
@ -1,19 +1,25 @@
|
|||
# Fleet UI
|
||||
- [Creating a query](#create-a-query)
|
||||
- [Running a query](#run-a-query)
|
||||
- [Scheduling a query](#schedule-a-query)
|
||||
- [Update agent options](#update-agent-options)
|
||||
# Queries
|
||||
|
||||
Queries in Fleet allow you to ask questions to help you manage, monitor, and identify threats on your devices. This guide will walk you through how to create, schedule, and run a query.
|
||||
|
||||
> Note: Unless a logging infrastructure is configured on your Fleet server, osquery-related logs will be stored locally on each device. Read more [here](https://fleetdm.com/guides/log-destinations)
|
||||
|
||||
> New users may find it helpful to start with Fleet's policies. You can find policies and queries from the community in Fleet's [query library](https://fleetdm.com/queries). To learn more about policies, see [What are Fleet policies?](https://fleetdm.com/securing/what-are-fleet-policies) and [Understanding the intricacies of Fleet policies](https://fleetdm.com/guides/understanding-the-intricacies-of-fleet-policies).
|
||||
|
||||
### In this guide:
|
||||
|
||||
- [Create a query](#create-a-query)
|
||||
- [Run a query](#run-a-query)
|
||||
- [Schedule a query](#schedule-a-query)
|
||||
|
||||
<div purpose="embedded-content">
|
||||
<iframe src="https://www.youtube.com/embed/1VNvg3_drow" allowfullscreen></iframe>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
## Create a query
|
||||
|
||||
Queries in Fleet allow you to ask a multitude of questions to help you manage, monitor, and identify threats on your devices.
|
||||
|
||||
If you're unsure of what to ask, head to Fleet's [query library](https://fleetdm.com/queries). There you'll find common queries that have been tested by members of our community.
|
||||
|
||||
How to create a query:
|
||||
|
||||
1. In the top navigation, select **Queries**.
|
||||
|
|
@ -63,16 +69,10 @@ By default, queries that run on a schedule will only target platforms compatible
|
|||
|
||||
> Note: When viewing a specific [team](https://fleetdm.com/docs/using-fleet/segment-hosts) in Fleet Premium, only queries that belong to the selected team will be listed. When configuring query automations for all hosts, only global queries will be listed.
|
||||
|
||||
## Update agent options
|
||||
|
||||
<!-- Heading is kept so that the link from the Fleet UI still works -->
|
||||
<span id="configuring-agent-options" name="configuring-agent-options"></span>
|
||||
|
||||
> This content was relocated on 31st August 2023.
|
||||
|
||||
See "[Agent configuration](https://fleetdm.com/docs/configuration/agent-configuration)" to learn how to simultaneously update agent options from the Fleet UI or fleetctl command line tool.
|
||||
|
||||
<meta name="title" value="Fleet UI">
|
||||
<meta name="pageOrderInSection" value="200">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="noahtalerman">
|
||||
<meta name="authorFullName" value="Noah Talerman">
|
||||
<meta name="publishedOn" value="2024-08-09">
|
||||
<meta name="articleTitle" value="Queries">
|
||||
<meta name="description" value="Learn how to create, run, and schedule queries, as well as update agent options in the Fleet user interface.">
|
||||
<meta name="navSection" value="The basics">
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
# Manage access
|
||||
# Role-based access
|
||||
|
||||
Users have different abilities depending on the access level they have.
|
||||
|
||||
|
|
@ -83,7 +83,7 @@ GitOps is an API-only and write-only role that can be used on CI/CD pipelines.
|
|||
| View Apple business manager (BM) information | | | | ✅ | |
|
||||
| Generate Apple mobile device management (MDM) certificate signing request (CSR) | | | | ✅ | |
|
||||
| View disk encryption key for macOS and Windows hosts | ✅ | ✅ | ✅ | ✅ | |
|
||||
| Edit OS updates for macOS and Windows hosts | | | ✅ | ✅ | ✅ |
|
||||
| Edit OS updates for macOS, Windows, iOS, and iPadOS hosts | | | ✅ | ✅ | ✅ |
|
||||
| Create, edit, resend and delete configuration profiles for macOS and Windows hosts | | | ✅ | ✅ | ✅ |
|
||||
| Execute MDM commands on macOS and Windows hosts\** | | | ✅ | ✅ | |
|
||||
| View results of MDM commands executed on macOS and Windows hosts\** | ✅ | ✅ | ✅ | ✅ | |
|
||||
|
|
@ -154,7 +154,7 @@ Users with access to multiple teams can be assigned different roles for each tea
|
|||
| Edit agent options | | | | ✅ | ✅ |
|
||||
| Initiate [file carving](https://fleetdm.com/docs/using-fleet/rest-api#file-carving) | | | ✅ | ✅ | |
|
||||
| View disk encryption key for macOS hosts | ✅ | ✅ | ✅ | ✅ | |
|
||||
| Edit OS updates for macOS and Windows hosts | | | ✅ | ✅ | ✅ |
|
||||
| Edit OS updates for macOS, Windows, iOS, and iPadOS hosts | | | ✅ | ✅ | ✅ |
|
||||
| Create, edit, resend and delete configuration profiles for macOS and Windows hosts | | | ✅ | ✅ | ✅ |
|
||||
| Execute MDM commands on macOS and Windows hosts* | | | ✅ | ✅ | |
|
||||
| View results of MDM commands executed on macOS and Windows hosts* | ✅ | ✅ | ✅ | ✅ | |
|
||||
|
|
@ -175,6 +175,9 @@ Users with access to multiple teams can be assigned different roles for each tea
|
|||
|
||||
\** Team-level users only see global query results for hosts on teams where they have access.
|
||||
|
||||
<meta name="pageOrderInSection" value="900">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="noahtalerman">
|
||||
<meta name="authorFullName" value="Noah Talerman">
|
||||
<meta name="publishedOn" value="2024-08-10">
|
||||
<meta name="articleTitle" value="Role-based access">
|
||||
<meta name="description" value="Learn about the different roles and permissions in Fleet.">
|
||||
<meta name="navSection" value="The basics">
|
||||
|
|
@ -19,7 +19,7 @@ If you don't use MDM features, to enable scripts, we'll deploy a fleetd agent wi
|
|||
|
||||
2. Deploy fleetd to your hosts. If your hosts already have fleetd installed, you can deploy the new fleetd on-top of the old installation.
|
||||
|
||||
Learn more about generating a fleetd agent and deploying it [here](./enroll-hosts.md).
|
||||
Learn more about generating a fleetd agent and deploying it [here](https://fleetdm.com/guides/enroll-hosts).
|
||||
|
||||
## Execute a script
|
||||
|
||||
|
|
@ -45,7 +45,9 @@ fleetctl CLI:
|
|||
fleetctl run-script --script-path=/path/to/script --host=hostname
|
||||
```
|
||||
|
||||
<meta name="pageOrderInSection" value="1508">
|
||||
<meta name="title" value="Scripts">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="noahtalerman">
|
||||
<meta name="authorFullName" value="Noah Talerman">
|
||||
<meta name="publishedOn" value="2024-06-04">
|
||||
<meta name="articleTitle" value="Scripts">
|
||||
<meta name="description" value="Learn how to execute a custom script on macOS, Windows, and Linux hosts in Fleet.">
|
||||
<meta name="navSection" value="Device management">
|
||||
133
articles/seamless-mdm-migration.md
Normal file
133
articles/seamless-mdm-migration.md
Normal file
|
|
@ -0,0 +1,133 @@
|
|||
# Seamless MDM migrations to Fleet
|
||||
|
||||

|
||||
|
||||
Migrating macOS devices between Mobile Device Management (MDM) solutions is often fraught with challenges, including potential gaps in device management, user disruption, and compliance issues. Traditional MDM migrations typically require end-user interaction and leave devices unmanaged for a period, leading to problems like Wi-Fi disconnections due to certificate profile removal and incomplete migrations. These challenges can force organizations to stay with outdated MDM solutions that no longer meet their needs. But there’s a better way.
|
||||
|
||||
Seamless MDM migrations are now possible, allowing organizations to transition their macOS devices to Fleet without any downtime or end-user involvement. By leveraging Fleet, you can ensure that your devices remain fully managed and compliant throughout the migration process. This means no more gaps in management, no user disruptions, and a smoother path to a more modern and effective MDM solution.
|
||||
|
||||
This guide will walk you through the entire process of migrating your MDM deployment to Fleet. You’ll start by understanding the specific requirements for a seamless migration, followed by configuring Fleet with the necessary certificates and database records. The guide will then take you through the process of installing Fleet’s agent (`fleetd`) on your devices, updating DNS records to redirect devices to the Fleet server, and finally, decommissioning your old MDM server.
|
||||
|
||||
Throughout the guide, you’ll find practical advice and best practices to ensure a smooth transition with minimal risk. By the end, you’ll be equipped with the knowledge and tools to execute a seamless MDM migration to Fleet, ensuring that your organization’s devices are securely managed without the typical headaches associated with a traditional MDM switch.
|
||||
|
||||
## Requirements
|
||||
|
||||
Note: Deployments that do not meet these seamless migration requirements can still migrate with the [standard MDM migration process](https://fleetdm.com/docs/using-fleet/mdm-migration-guide).
|
||||
|
||||
* Customer controls the DNS used in the MDM server enrollment (eg. devices are enrolled to `*.customerowneddomain.com`, not `*.mdmvendor.com`).
|
||||
* Customer has access to the Apple Push Notification Service (APNS) certificate/key and SCEP certificate/key, or access to the MDM server database to extract these values.
|
||||
|
||||
These requirements are easily met in self-hosted open-source MDM solutions and may be met with commercial solutions when the customer is self-hosting or otherwise controls the DNS.
|
||||
|
||||
Seamless migration may still be possible with control of DNS along with a copy of the original Certificate Signing Request (CSR) for the APNS certificate. If you are in this situation, please reach out to the Fleet team.
|
||||
|
||||
### Why?
|
||||
|
||||
Apple allows changing most values in profiles delivered by MDM, but the `ServerURL`, `CheckinURL`, and `PushTopic` cannot be changed without re-enrollment (and user actions). Control of DNS and the certificates allows the MDM to be swapped out without changing these.
|
||||
|
||||
## High-level process
|
||||
|
||||
1. Configure Fleet with the APNS & SCEP certificates/keys, path redirects, and SCEP renewal.
|
||||
2. Import database records letting Fleet know about the devices to be migrated.
|
||||
3. Configure controls (profiles, updates, etc.) in Fleet.
|
||||
4. Install `fleetd` on the devices (through the existing MDM).
|
||||
5. Update DNS records to point devices to the Fleet server.
|
||||
6. Decommission the old server.
|
||||
|
||||
It is recommended to follow the entire process on a staging/test MDM instance and devices, then repeat for the production instance and devices.
|
||||
|
||||
[](https://mermaid.live/edit#pako:eNpVUctuwjAQ_BVrT62URIaEvFRxqNKeSivBrZiDiTeJpdhGxqFQBN9eA23VXvY1o9lZ7RFqIxBKCMOQaSddjyV5xMZYJEq2ljtpNNNXtOnNR91x68jLnOntsPbwpiOK128LUuFO1sg0IUqoupeo3XJWzcitXDGNWjD9i5EwJHMzOBRkfSDV64I8rO2U3HlChHuuNj1GtVH3YTg1vfBTpm95-bSXWyd1Sy7qC7Q7tKu_wufzmTQ9orsY9mn5fIk_TAhAoVVcCn_z8WKXgetQIYPSlwIbPvSOAdMnT-WDM4uDrqF0dsAAho3gDivJ_eUKyob3Wz_dcP1uzL8eyiPsoRzTOBrHySim2SQtaBbAAco4S6NxTmmeZcUoLiZJfArg8ypAo5SOKC3iNM-LNMmTJAAU0hk7u32pNrqRrXdmzdB23xtPX3Gkloc)
|
||||
|
||||
[](https://mermaid.live/edit#pako:eNpVUcFuwjAM_ZXIu2xSW7XQdaWakCYxTmOT4DayQ0jcNqJJUEgZDMG3L6Vs2g5JbL9n-9k5AjcCoYAwDKl20jVYkKfSoSVKVpY5aTTVF7BszCevmXXkZU71tl15eFMTxfjbgkxwJzlSTYgSijcStVvOJjPSmx9UoxZUm0Z4ePm8l1sndUU6xgLtDq1n_CaS8_lMeurfaBiSuWkdCrI6kMnrgjyu7JjcekKEe6Y2DUbcqLswHJcNousE-2c57e6fLhCAQquYFH7kYyeXgqtRIYXCm42sakch6AHB7Hrmt9NhJWu2eI2vGF9X1rR-okvWzXQ6pUD1yVdnrTOLg-ZQONtiAO1GMIcTyfyyFBR9Gdgw_W7MPx-KI-yhSPI8GgzTJE2T-GGU5UkABygGeRz5k8SDJL8fpGmcnQL4ulSIo8zH49Ewy_NRluZpGgAK6Yyd9R_LjS5l5aV5xVV9bXn6BriRpdY)
|
||||
|
||||
### 1. Configure Fleet
|
||||
|
||||
The Fleet server must be configured with the APNS & SCEP certificates/keys copied from the existing server. This is done via manual modification of the Fleet database and configurations. The Fleet team will perform this configuration on Fleet Cloud instances and can advise how to do it on self-hosted Fleet instances.
|
||||
|
||||
In most cases, the paths (portion of the URL after the domain name) used in the enrollment profile `ServerURL`, `CheckInURL` and SCEP URL will differ from those used by Fleet. The Fleet Server load balancer must be configured to redirect the MDM client via HTTP 3xx redirects.
|
||||
|
||||
[Apple's documentation](https://developer.apple.com/documentation/devicemanagement/implementing_device_management/sending_mdm_commands_to_a_device?language=objc) states:
|
||||
|
||||
> MDM follows HTTP 3xx redirections without user interaction. However, it doesn’t save the URL given by HTTP 301 (Moved Permanently) redirections. Each transaction begins at the URL the MDM payload specifies.
|
||||
|
||||
Therefore, redirects must remain as long as migrated devices are enrolled.
|
||||
|
||||
For a typical MicroMDM to Fleet migration, the following redirects are used:
|
||||
|
||||
| From (MicroMDM path) | To (Fleet path) |
|
||||
| -------------------- | --------------- |
|
||||
| /mdm/checkin | /mdm/apple/mdm |
|
||||
| /mdm/connect | /mdm/apple/mdm |
|
||||
| /scep | /mdm/apple/scep |
|
||||
|
||||
SCEP certificate renewals need special handling for migrated devices. This is configured (by, or with guidance from the Fleet team) in the server using the [`FLEET_SILENT_MIGRATION_ENROLLMENT_PROFILE` environment variable](https://github.com/fleetdm/fleet/pull/20063). When configured, migrated devices receive an enrollment profile with matching keys when SCEP renewal comes due (migrated devices reject the typical profile Fleet sends because it includes the new server URL).
|
||||
|
||||
### 2. Import database records
|
||||
|
||||
The Fleet server is made aware of the devices that will be migrated by inserting records into the database. The Fleet team will perform this operation in Fleet Cloud and can advise for self-hosted instances.
|
||||
|
||||
For MicroMDM, a [migration script](https://github.com/fleetdm/fleet/pull/18151) has been made that will generate the necessary SQL statements from the MicroMDM database.
|
||||
|
||||
For other MDM solutions, please work with the Fleet team to generate the appropriate records.
|
||||
|
||||
### 3. Configure controls
|
||||
|
||||
Next, configure the controls that will be applied to migrated devices. Use the Teams features in Fleet Premium to apply different configurations to different devices.
|
||||
|
||||
In particular,
|
||||
|
||||
* [Configuration profiles](https://fleetdm.com/docs/using-fleet/mdm-custom-os-settings#custom-os-settings)
|
||||
* [OS updates](https://fleetdm.com/docs/using-fleet/mdm-os-updates)
|
||||
* [Disk encryption](https://fleetdm.com/docs/using-fleet/mdm-disk-encryption)
|
||||
|
||||
When the device checks in after migration, Fleet will send the full set of configuration profiles configured for that device's team. Any profiles with identifiers matching existing profiles on the device will be updated in place.
|
||||
|
||||
Fleet will not send commands to remove profiles that have not been configured in Fleet. Either remove these profiles before migration in the existing MDM before migration or use `fleetctl` or the Fleet API to send an MDM command to remove any undesired profiles.
|
||||
|
||||
OS update configurations will apply automatically after the device is migrated.
|
||||
|
||||
As of Fleet 4.55, disk encryption keys will automatically be re-escrowed after migration the next time the user logs into their device.
|
||||
|
||||
### 4. Install `fleetd`
|
||||
|
||||
Install `fleetd` on the devices to migrate. Devices with `fleetd` installed will begin to show up in the Fleet UI (with profiles in a "Pending" state).
|
||||
|
||||
Generate `.pkg` packages following the [standard enrollment documentation](https://fleetdm.com/docs/using-fleet/enroll-hosts). Install the package using the existing MDM or any other management tool.
|
||||
|
||||
Devices are automatically assigned to Teams in Fleet based on the package they are provided, so be sure to distribute packages that assign devices to teams with the relevant configurations.
|
||||
|
||||
### 5. Update DNS
|
||||
|
||||
Devices are now communicating with the Fleet server via the `fleetd` agent. They have not yet migrated MDM servers.
|
||||
|
||||
Ensure the Fleet server load balancer can terminate HTTPS using the existing server hostname. This typically involves issuing a certificate [with AWS ACM](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html). In Fleet Cloud, the Fleet team will ask the customer team to update a DNS record for verification so that AWS can issue the certificate.
|
||||
|
||||
Now the customer updates DNS to point the existing domain to the Fleet server load balancer. This typically involves setting a `CNAME` record with the hostname of the load balancer (eg. `mdm.example.com -> fleet-cloud-alb-1723349272.us-east-2.elb.amazonaws.com`).
|
||||
|
||||
Devices will begin checking in with the Fleet server and receiving new configurations.
|
||||
|
||||
### 6. Decommission the old server
|
||||
|
||||
At this point, the migration is complete. The old server can be decommissioned.
|
||||
|
||||
Keep a database backup of the old server on hand in case it is ever needed for reference or recovery.
|
||||
|
||||
## Gradual migration
|
||||
|
||||
In the process described, when we update DNS all of the devices are migrated immediately. To minimize risk, it is often desired to gradually migrate devices.
|
||||
|
||||
Fleet has created a [migration proxy](https://github.com/fleetdm/fleet/tree/main/tools/mdm/migration/mdmproxy) that can be used to gradually migrate specific devices and/or a percentage of devices. This allows a staged migration with progressively more devices migrated.
|
||||
|
||||
## Conclusion
|
||||
|
||||
Seamless MDM migrations on macOS are not just possible but are a significant step forward in maintaining a secure and compliant environment without disrupting end users. By following this guide, you can transition from your existing MDM solution to Fleet smoothly, keeping your devices managed and secure throughout the process. If you encounter any challenges, the Fleet team is ready to assist you, ensuring your migration is successful.
|
||||
|
||||
For organizations ready to take control of their MDM strategy, this seamless migration process is an opportunity to upgrade to a modern, flexible, and secure management solution. We encourage you to reach out for support or further explore the robust features Fleet offers to enhance your device management capabilities.
|
||||
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorFullName" value="Zach Wasserman">
|
||||
<meta name="authorGitHubUsername" value="zwass">
|
||||
<meta name="publishedOn" value="2024-08-08">
|
||||
<meta name="articleTitle" value="Seamless MDM migrations to Fleet">
|
||||
<meta name="articleImageUrl" value="../website/assets/images/articles/seamless-mdm-migration-1600x900@2x.png">
|
||||
<meta name="description" value="This guide provides a process for seamlessly migrating macOS devices from an existing MDM solution to Fleet.">
|
||||
80
articles/software-self-service.md
Normal file
80
articles/software-self-service.md
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
# Software self-service
|
||||
|
||||

|
||||
|
||||
Fleet’s self-service software feature empowers end users by allowing them to independently install approved software packages from a curated list through the Fleet Desktop “My device” page. This not only reduces the administrative burden on IT teams but also enhances user productivity and satisfaction. In this guide, we will walk you through the process of uploading, editing, and managing self-service software packages in Fleet, enabling seamless software distribution and management.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
* Fleet Premium is required for software self-service.
|
||||
|
||||
> Software packages can be added to a specific team or to the "No team" category. The "No team" category is the default assignment for hosts that are not part of any specific team.
|
||||
|
||||
## Step-by-Step Instructions
|
||||
|
||||
### Adding a self-service software package
|
||||
|
||||
1. **Navigate to the Software page**: Click “Software” in the main navigation menu.
|
||||
2. **Select a team**: Click the dropdown in the upper left corner of the page and click on the team to which you want to add the software package.
|
||||
3. **Open the “Add software” modal**: Click the “Add software” button in the upper right corner of the page.
|
||||
4. **Select a software package to upload**: Click “Choose file” in the “Add software” modal and select a software package from your computer.
|
||||
5. **Advanced options**: If desired, click “Advanced options” to add a pre-install condition or post-install script to your software package.
|
||||
* **Pre-install condition**: This is an osquery query that results in true. For example, you might require a specific software title to exist before installing additional extensions.
|
||||
* **Post-install script**: This might be used to apply a license key, perform configuration tasks, or execute cleanup tasks after the software installation.
|
||||
6. **Make the software package self-service**: Check the “Self-service” checkbox to mark the software package as self-service.
|
||||
7. **Finish the upload**: Click the “Add software” button to finish the upload process.
|
||||
|
||||
### Editing a self-service software package
|
||||
|
||||
1. **Navigate to the software details page for the software package**: Click “Software” in the main navigation menu.
|
||||
2. **Select a team**: Click the dropdown in the upper left corner of the page and click on the team to which you added the software package.
|
||||
3. **Filter by self-service**: To make it easier to find your software package, click on the dropdown to the left of the search bar and select “Self-service”. This will filter the results in the table to only show self-service software packages. If you still don’t see your software package, you can page through the results or search for your software package’s name in the search bar.
|
||||
4. **Open the details page**: Click on the software package’s name.
|
||||
5. **Open the actions dropdown**: Click on the “Actions” dropdown on the far right of the page. From here, you can download the software package, delete the software package, or click “Advanced options” to see the options you configured when adding the software package.
|
||||
|
||||
### Downloading a self-service software package
|
||||
|
||||
1. **Navigate to the software details page for the software package**: Click “Software” in the main navigation menu.
|
||||
2. **Select a team**: Click the dropdown in the upper left corner of the page and click on the team to which you added the software package.
|
||||
3. **Filter by self-service**: Click on the dropdown to the left of the search bar and select “Self-service” and page through the results or search for your software package’s name in the search bar.
|
||||
4. **Download the software package**:
|
||||
* **Option 1**: Click on the down-arrow next to the software package name in the list of self-service software packages to start an immediate download.
|
||||
* **Option 2**: Click on the software package’s name to open the details page. Click on the “Actions” dropdown on the far right of the page, and then click on “Download” to download the software package to your computer.
|
||||
|
||||
### Deleting a self-service software package
|
||||
|
||||
1. **Navigate to the software details page for the software package**: Click “Software” in the main navigation menu.
|
||||
2. **Select a team**: Click the dropdown in the upper left corner of the page and click on the team to which you added the software package.
|
||||
3. **Filter by self-service**: Click on the dropdown to the left of the search bar and select “Self-service” and page through the results or search for your software package’s name in the search bar.
|
||||
4. **Open the details page**: Click on the software package’s name.
|
||||
5. **Open the actions dropdown**: Click on the “Actions” dropdown on the far right of the page.
|
||||
6. **Delete the software package**: Click on “Delete” to remove the software package from Fleet. Confirm the deletion if prompted.
|
||||
|
||||
### Installing self-service software packages
|
||||
|
||||
To install the self-service software package on the host:
|
||||
|
||||
1. **Navigate to the “Self-service” tab**: Click on the Fleet Desktop icon in the OS menu bar. Click “Self-service”. This will point your default web browser to the list of self-service software packages in the “My device” page.
|
||||
2. **Install the self-service software package**: Click the “Install” button for the software package you want to install.
|
||||
|
||||
### Using the REST API for self-service software packages
|
||||
|
||||
Fleet provides a REST API for managing software packages, including self-service software packages. Learn more about Fleet's [REST API](https://fleetdm.com/docs/rest-api/rest-api#software).
|
||||
|
||||
### Managing self-service software packages with GitOps
|
||||
|
||||
To manage self-service software packages using Fleet's best practice GitOps, check out the `software` key in the [GitOps reference documentation](https://fleetdm.com/docs/using-fleet/gitops#software).
|
||||
|
||||
> Note: with GitOps enabled, software packages uploaded using the web UI will not persist.
|
||||
|
||||
## Conclusion
|
||||
|
||||
Fleet’s self-service software feature not only simplifies software management for IT administrators but also empowers end users by giving them access to necessary software on demand. This feature ensures that your hosts remain secure while improving overall user experience. For further information and advanced management techniques, refer to Fleet's [REST API](https://fleetdm.com/docs/rest-api/rest-api#software) and [GitOps](https://fleetdm.com/docs/using-fleet/gitops#software) documentation.
|
||||
|
||||
<meta name="articleTitle" value="Software self-service">
|
||||
<meta name="authorFullName" value="Jahziel Villasana-Espinoza">
|
||||
<meta name="authorGitHubUsername" value="jahzielv">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="publishedOn" value="2024-08-06">
|
||||
<meta name="articleImageUrl" value="../website/assets/images/articles/software-self-service-1600x900@2x.png">
|
||||
<meta name="description" value="This guide will walk you through adding apps to Fleet for user self-service.">
|
||||
|
|
@ -47,4 +47,9 @@ Listed below are great resources that contain additional queries.
|
|||
- Osquery (https://github.com/osquery/osquery/tree/master/packs)
|
||||
- Palantir osquery configuration (https://github.com/palantir/osquery-configuration/tree/master/Fleet)
|
||||
|
||||
<meta name="navSection" value="The basics">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="noahtalerman">
|
||||
<meta name="authorFullName" value="Noah Talerman">
|
||||
<meta name="publishedOn" value="2024-04-04">
|
||||
<meta name="articleTitle" value="Standard query library">
|
||||
<meta name="description" value="Learn how to use and contribute to Fleet's standard query library.">
|
||||
|
|
@ -43,7 +43,7 @@ I thought using Apple’s Automated Device Enrollment (or Device Enrollment Prog
|
|||
|
||||
Technically, I was not wrong, but there are non-technical challenges.
|
||||
|
||||
1. The requirements to establish a DEP account vary by country. In the US, for example, it requires a [DUNS](https://en.wikipedia.org/wiki/Data_Universal_Numbering_System) number. Getting a DUNS number is simple for US companies, but what is not easy is to fulfill similar requirements in every country where you would like to use DEP. We could not register for DEP in Canada. We have people in many other countries with a similar situation.
|
||||
1. The requirements to establish a ADE account vary by country. In the US, for example, it requires a [DUNS](https://en.wikipedia.org/wiki/Data_Universal_Numbering_System) number. Getting a DUNS number is simple for US companies, but what is not easy is to fulfill similar requirements in every country where you would like to use ADE. We could not register for ADE in Canada. We have people in many other countries with a similar situation.
|
||||
2. The delays for obtaining hardware are very long. When planning endpoint deployment strategies, we must consider this, as supply chain issues will not disappear soon.
|
||||
3. The benchmarks made by the Center for Internet Security (CIS) are excellent but are incredibly long (700+ pages) and written for experts. We wanted to be transparent about why we configured company devices a certain way and explain it so everyone could understand without Googling for hours.
|
||||
|
||||
|
|
@ -55,9 +55,9 @@ Google should offer more granularity than on/off for third-party cookies, such a
|
|||
|
||||
## Solutions
|
||||
|
||||
### DEP in other countries
|
||||
### ADE in other countries
|
||||
|
||||
First, we enrolled in DEP in the US. Once we had our customer numbers and Mobile Device Management (MDM) system linked up, we were ready to buy laptops in the US that would get configured out of the box. Then, we found a workaround for Canada. If you add Apple’s Reseller ID to [Apple Business Manager](https://business.apple.com/), you can order computers over the phone and have them linked to your business account. The Reseller ID part is critical. I learned that the hard way, by receiving a laptop ordered like this to find it not part of DEP. Fortunately, it was easy for me to [add it to DEP manually](https://support.apple.com/en-ca/guide/apple-configurator/welcome/ios).
|
||||
First, we enrolled in ADE in the US. Once we had our customer numbers and Mobile Device Management (MDM) system linked up, we were ready to buy laptops in the US that would get configured out of the box. Then, we found a workaround for Canada. If you add Apple’s Reseller ID to [Apple Business Manager](https://business.apple.com/), you can order computers over the phone and have them linked to your business account. The Reseller ID part is critical. I learned that the hard way, by receiving a laptop ordered like this to find it not part of ADE. Fortunately, it was easy for me to [add it to ADE manually](https://support.apple.com/en-ca/guide/apple-configurator/welcome/ios).
|
||||
|
||||
We will keep trying the same approach in every country where we need Macs, though we know it will not be possible everywhere. We will either obtain equipment from a nearby country or rely on manual MDM enrollment by end-users for those countries.
|
||||
|
||||
|
|
@ -76,7 +76,7 @@ Using the [CIS Benchmark for macOS 12](https://www.cisecurity.org/benchmark/appl
|
|||
|
||||
### Effort
|
||||
|
||||
Implementing our own security baseline, configuring our MDM and DEP required a couple of days of effort, mostly because I insisted on reviewing all of the CIS Benchmark to be certain I didn’t miss something important. Having everything published in our handbook required additional effort, but if you were to use our baseline, you could get started very quickly. The main thing that will slow you down is getting onboarded to DEP, and receiving your first laptop ordered!
|
||||
Implementing our own security baseline, configuring our MDM and ADE required a couple of days of effort, mostly because I insisted on reviewing all of the CIS Benchmark to be certain I didn’t miss something important. Having everything published in our handbook required additional effort, but if you were to use our baseline, you could get started very quickly. The main thing that will slow you down is getting onboarded to ADE, and receiving your first laptop ordered!
|
||||
|
||||
## What's next?
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ One of the essential things about SOC 2 is having the right security policies. T
|
|||
|
||||
Writing policies from scratch can seem daunting. Many compliance automation products have templates you can use to get started, but there are excellent free and open resources online.
|
||||
|
||||
As you can see, our policies are in our [handbook](https://fleetdm.com/handbook/business-operations/security-policies#information-security-policy-and-acceptable-use-policy), and we created most of them using this [free set of templates](https://github.com/JupiterOne/security-policy-templates) published by JupiterOne under Creative Commons licensing.
|
||||
As you can see, our policies are in our [handbook](https://fleetdm.com/handbook/digital-experience/security-policies#information-security-policy-and-acceptable-use-policy), and we created most of them using this [free set of templates](https://github.com/JupiterOne/security-policy-templates) published by JupiterOne under Creative Commons licensing.
|
||||
|
||||
We kept our policies as basic as possible to make sure everything in them is valuable and achievable. Having policies that state you must do the impossible is a surefire way of getting in trouble! The templates we used contained many processes and procedures as well. We used the policies and will eventually document more of our procedures in our handbook.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# Segment hosts
|
||||
# Teams
|
||||
|
||||
_Available in Fleet Premium_
|
||||
|
||||
In Fleet, you can group hosts together in a "team" in Fleet. This way, you can apply queries, policies, scripts, and more that are tailored to the hosts' risk/compliance needs.
|
||||
In Fleet, you can group hosts together in a "team" in Fleet. This way, you can apply queries, policies, scripts, and more that are tailored to a host's risk/compliance needs.
|
||||
|
||||
A host can only belong to one team.
|
||||
|
||||
|
|
@ -30,10 +30,13 @@ You can add hosts to a new team in Fleet by either enrolling the host with a tea
|
|||
|
||||
## Advanced
|
||||
|
||||
You can automatically enroll hosts to a specific team in Fleet by installing a fleetd with a team enroll secret. Learn more [here](./enroll-hosts.md#enroll-host-to-a-specific-team).
|
||||
You can automatically enroll hosts to a specific team in Fleet by installing a fleetd with a team enroll secret. Learn more [here](https://fleetdm.com/guides/enroll-hosts#enroll-host-to-a-specific-team).
|
||||
|
||||
Changing the host's enroll secret after enrollment will not cause the host to be transferred to a different team.
|
||||
|
||||
<meta name="pageOrderInSection" value="1000">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="noahtalerman">
|
||||
<meta name="authorFullName" value="Noah Talerman">
|
||||
<meta name="publishedOn" value="2024-07-11">
|
||||
<meta name="articleTitle" value="Teams">
|
||||
<meta name="description" value="Learn how to group hosts in Fleet to apply specific queries, policies, and agent options using teams.">
|
||||
<meta name="navSection" value="The basics">
|
||||
|
|
@ -1,7 +1,5 @@
|
|||
# Vulnerability processing
|
||||
|
||||
## Introduction
|
||||
|
||||
Vulnerability processing in Fleet detects vulnerabilities (CVEs) for the software installed on your hosts.
|
||||
|
||||
To see what software is covered, check out the [Coverage section](#coverage).
|
||||
|
|
@ -16,18 +14,27 @@ To see what software is covered, check out the [Coverage section](#coverage).
|
|||
|
||||
Fleet detects vulnerabilities for these software types:
|
||||
|
||||
| Type | macOS | Windows | Linux |
|
||||
| ------------------- | ------------------------------------------ | ------------------------------------------------ | ---------------- |
|
||||
| Apps | ✅ | ✅ | ❌ |
|
||||
| Browser plugins | Chrome extensions, Firefox extensions | Chrome extensions, Firefox extensions | ❌ |
|
||||
| Packages | Python, Homebrew | Python, Atom, Chocolatey | Packages defined in the [OVAL definitions](https://github.com/fleetdm/nvd/blob/master/oval_sources.json), except for vulnerabilities involving configuration files. Supported distributions: <ul><li>Ubuntu</li><li>RHEL based distros (Red Hat, CentOS, Fedora, and Amazon Linux)</li></ul> |
|
||||
| IDE extensions | VS Code extensions | VS Code extensions | VS Code extensions |
|
||||
| Type | macOS | Windows | Linux |
|
||||
| ------------------- | ------------------------------------------ | ------------------------------------------------ |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| Apps | ✅ | ✅ | ❌ |
|
||||
| Browser plugins | Chrome extensions, Firefox extensions | Chrome extensions, Firefox extensions | ❌ |
|
||||
| Packages | Python, Homebrew | Python, Atom, Chocolatey | <p>For Ubuntu, Debian, RHEL (including CentOS), and Fedora: packages defined in the [OVAL definitions](https://github.com/fleetdm/nvd/blob/master/oval_sources.json), except for vulnerabilities involving configuration files.</p><p>For Amazon Linux, packages maintained by Amazon by checking [ALAS advisories](https://alas.aws.amazon.com/).</p> |
|
||||
| IDE extensions | VS Code extensions | VS Code extensions | VS Code extensions |
|
||||
|
||||
As of right now, only app names with all ASCII characters are supported. Apps with names featuring non-ASCII characters, such as Cyrillic, will not generate matches.
|
||||
|
||||
For Ubuntu Linux, kernel vulnerabilities with known variants (ie. `-generic`) are detected using OVAL. Custom kernels (unknown variants) are detected using NVD.
|
||||
|
||||
### Advanced configuration
|
||||
## Sources
|
||||
|
||||
Fleet combines multiple sources to get accurate and up-to-date CVE information:
|
||||
- [National Vulnerability Database](https://nvd.nist.gov/developers/vulnerabilities) CVE feeds
|
||||
- [VulnCheck](https://vulncheck.com/) CVE feeds
|
||||
- [Mac Office release notes](https://learn.microsoft.com/en-us/officeupdates/release-notes-office-for-mac) for Office for Mac
|
||||
- [Microsoft MSRC Security Bulletins](https://msrc.microsoft.com/update-guide) for Windows OS vulnerabilities
|
||||
- [OVAL definitions](https://github.com/fleetdm/nvd/blob/master/oval_sources.json) for Linux software
|
||||
|
||||
## Advanced configuration
|
||||
|
||||
Fleet runs vulnerability downloading and processing via internal scheduled cron job. This internal mechanism is very useful
|
||||
for frictionless deployments and is well suited for most use cases. However, in larger deployments,
|
||||
|
|
@ -63,6 +70,9 @@ command.
|
|||
fleet vuln_processing
|
||||
```
|
||||
|
||||
<meta name="pageOrderInSection" value="1300">
|
||||
<meta name="category" value="guides">
|
||||
<meta name="authorGitHubUsername" value="noahtalerman">
|
||||
<meta name="authorFullName" value="Noah Talerman">
|
||||
<meta name="publishedOn" value="2024-07-12">
|
||||
<meta name="articleTitle" value="Vulnerability processing">
|
||||
<meta name="description" value="Find out how Fleet detects vulnerabilities and what software it covers.">
|
||||
<meta name="navSection" value="Vuln management">
|
||||
|
|
@ -10,7 +10,7 @@ To use automatic enrollment (aka zero-touch) features on Windows, follow instruc
|
|||
|
||||
### Step 1: Generate your certificate and key
|
||||
|
||||
Fleet uses a certificate and key pair to authenticate and manage interactions between Fleet and Windows host.
|
||||
Fleet uses a certificate and key pair to authenticate and manage interactions between the Fleet server and a Windows host.
|
||||
|
||||
How to generate a certificate and key:
|
||||
|
||||
|
|
|
|||
BIN
assets/images/iPadOS-install-profile.png
Normal file
BIN
assets/images/iPadOS-install-profile.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 68 KiB |
BIN
assets/images/iPadOS-profile-downloaded.png
Normal file
BIN
assets/images/iPadOS-profile-downloaded.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 118 KiB |
BIN
assets/images/ios-install-profile.png
Normal file
BIN
assets/images/ios-install-profile.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 82 KiB |
BIN
assets/images/ios-profile-downloaded.png
Normal file
BIN
assets/images/ios-profile-downloaded.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 93 KiB |
|
|
@ -1 +0,0 @@
|
|||
* `fleetd` now uses Escrow Buddy to rotate FileVault keys. Internal API endpoints documented in the API for contributors have been modified and/or removed.
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
- Adds enforcement of FileVault during the MacOS Setup Assistant process for hosts that are enrolled
|
||||
into teams (or no team) with disk encryption turned on.
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
* Drop support for MySQL 5.7
|
||||
* Minimum requirements raised to MySQL 8.0
|
||||
2
changes/17558-validation-errs
Normal file
2
changes/17558-validation-errs
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
- Adds validation of Setup Assistant profiles on profile upload, giving users immediate feedback on
|
||||
the validity of the profile.
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
* Added support for generating fleetd packages for Linux ARM64
|
||||
* fleetctl: New `fleetctl package` --arch flag
|
||||
1
changes/18897-shoe-zeroes
Normal file
1
changes/18897-shoe-zeroes
Normal file
|
|
@ -0,0 +1 @@
|
|||
Added "0 items" description on empty software tables for UI consistency
|
||||
|
|
@ -1 +0,0 @@
|
|||
CVEs identified as 'Rejected' in NVD will no longer match against software
|
||||
|
|
@ -1 +0,0 @@
|
|||
Maintenance window descriptions are now updated regularly to match the failing policy description/resolution.
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
- In maintenance windows using Google Calendar, calendar event is now recreated within 30 seconds if deleted or moved to the past.
|
||||
- Fleet server watches for potential changes for up to 1 week after original event time. If event is moved forward more than 1 week, then after 1 week Fleet server will check for event changes once every 30 minutes.
|
||||
- These near real-time updates may add additional load to the Google Calendar API, so it is recommended to use API usage alerts or other monitoring methods.
|
||||
1
changes/19442-ubuntu-python-packages
Normal file
1
changes/19442-ubuntu-python-packages
Normal file
|
|
@ -0,0 +1 @@
|
|||
- Addressing Ubuntu python package false positive vulnerabilities by removing duplicate entries for ubuntu python packages installed by dpkg and renaming remaining pip installed packages to match OVAL definitions.
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
- iOS and iPadOS device details refetch can now be triggered with the existing `POST /api/latest/fleet/hosts/:id/refetch` endpoint.
|
||||
- iOS and iPadOS user-installed apps can be viewed in Fleet
|
||||
- iOS and iPadOS apps can be installed using Apple's VPP (Volume Purchase Program)
|
||||
|
|
@ -1 +0,0 @@
|
|||
- adds support for No teams on all software pages including adding software installers
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue