Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pocket/Supervisor Initiated Remote Updates #407

Open
MikaylaFischler opened this issue Jan 2, 2024 · 0 comments
Open

Pocket/Supervisor Initiated Remote Updates #407

MikaylaFischler opened this issue Jan 2, 2024 · 0 comments
Assignees
Labels
enhancement New feature or improvement. evaluate Needs to be evaluated if this will be implemented, and how. feature request New feature or request from users. installer App installer related.
Milestone

Comments

@MikaylaFischler
Copy link
Owner

MikaylaFischler commented Jan 2, 2024

Initiate either via the Supervisor front panel or the Pocket a remote routine on any device (that isn't the host device) that will perform an update. This will require changing how ccmsi executes or duplicating functionality (former is preferred). Providing functions the main apps can include from ccmsi would be beneficial, though ccmsi is currently treated as an optional stand-alone application to keep its size as small as possible.

The initiator, Pocket or Supervisor, could also have a page where it can trigger its own update without needing to run ccmsi manually.

Remote update commands must absolutely require MACs to be used, otherwise devices can effectively be remotely rebooted by unauthorized parties. However, denying update requests on devices already updated could possibly be enough of a security against that, assuming the user opt's-in to this feature.

Opt-in is preferred, as this will:

  • Always update in single file mode if required
  • Always delete unused files
  • Allow remote reboot of safety-critical devices
  • Leave devices non-functional if the update fails for any reason

In the case where a perfectly minimal amount of disk usage is present, even a single file mode update may fail and require user intervention. Automatic deletion of a log file followed by a retry could work, assuming it fails at a time where actions can still be taken. That would yet be another action that is not ideal without user confirmation.

Procedure would be:

  1. Re-check for an update
  2. Bring the system into a safe state (supervisor would close connections, PLC would SCRAM reactor)
  3. Yield out of the main code, switching to solely running the update routine
  4. Complete the update routine
  5. Reboot with os.reboot()

Other Considerations

  • Provide both a check for update and an update option
  • Limit updating to while the system is in a safe state, similar to how alarm testing works
@MikaylaFischler MikaylaFischler added enhancement New feature or improvement. installer App installer related. labels Jan 2, 2024
@MikaylaFischler MikaylaFischler added this to the Post-Release milestone Jan 2, 2024
@MikaylaFischler MikaylaFischler self-assigned this Jan 2, 2024
@MikaylaFischler MikaylaFischler added the feature request New feature or request from users. label Jan 6, 2024
@MikaylaFischler MikaylaFischler added the evaluate Needs to be evaluated if this will be implemented, and how. label Nov 22, 2024
@MikaylaFischler MikaylaFischler changed the title Investigate Pocket/Supervisor Initiated Remote Updates Pocket/Supervisor Initiated Remote Updates Nov 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or improvement. evaluate Needs to be evaluated if this will be implemented, and how. feature request New feature or request from users. installer App installer related.
Projects
None yet
Development

No branches or pull requests

1 participant