Skip to content

Schedule scripts to run at a specific time #28390

@rachaelshaw

Description

@rachaelshaw

Goal

User story
As an IT admin,
I want to schedule a script run in advance at a specific time
so that I can make changes to computers at an expected time.

Key result

Scripts improvements

Original requests

Context

Technical design

https://docs.google.com/document/d/1cO0B-y3G4AZPsoYDO5K-7SYiGk-tIjjS-Bt-glNSeYk/edit?tab=t.0#heading=h.1o6yev2uqgx0

Changes

Product

  • UI changes: Figma
  • CLI (fleetctl) usage changes: No changes
  • YAML changes: No changes
  • REST API changes: PR
    • Update batch-run script API (new parameter)
    • Update batch-run script summary (new data in API response)
    • New list batch scripts API
    • New list batch script results API
    • New cancel batch script API
  • Fleet's agent (fleetd) changes: DISCUSS: are there changes needed to support scheduled script runs?
  • GitOps mode changes: No changes
  • Activity changes: PR
  • Permissions changes: PR
  • Changes to paid features or tiers: Fleet Free
  • My device and fleetdm.com/better changes: No changes
  • First draft of test plan added
  • Other reference documentation changes: No changes
  • Once shipped, requester has been notified
  • Once shipped, dogfooding issue has been filed

Engineering

  • Test plan is finalized
  • Contributor API changes: See API PR
  • Feature guide changes: Update the scripts guide.
  • Database schema migrations: Probably need DB changes.
  • Load testing: Yes. Requires load test (to be defined by QA)

ℹ️  Please read this issue carefully and understand it. Pay special attention to UI wireframes, especially "dev notes".

QA

Risk assessment

  • Requires load testing: Yes.
  • Risk level: High
  • Risk description: Changes needed at the heart of Backend code.

Test plan

Make sure to go through the list and consider all events that might be related to this story, so we catch edge cases earlier.

  1. Test batch progress page empty states (no scripts scheduled)
  2. Test "run immediately" option - Make sure no regressions
  3. Test "schedule" option - Schedule for the future
    • Try putting invalid times
    • Try putting times in the past
  4. Test activities page (past and upcoming)
    • Ensure all modals are there
  5. Test cancelling upcoming script
  6. Test scheduling script via API
  7. Test cancelling script via API
  8. Test all batch progress tabs in the UI
  9. Test host detail page filters for:
    • Incompatible
    • Cancelled

Testing notes

Confirmation

  1. Engineer: Added comment to user story confirming successful completion of test plan.
  2. QA: Added comment to user story confirming successful completion of test plan.

Metadata

Metadata

Assignees

Labels

#g-orchestrationOrchestration product group:productProduct Design department (shows up on 🦢 Drafting board)customer-geevestoryA user story defining an entire feature~contextFeature that customers consider mission critical for their particular buying situation.~customer promiseA feature request, or user story for a request, that Fleet has contractually agreed to deliver

Type

No type

Projects

Status

Done

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions