| uip | 0110 |
|---|---|
| title | Gall Agent Backups |
| description | Expose agent state to enable backup and restore. |
| author | ~midden-fabler (@midden-fabler), ~mopfel-winrux (@mopfel-winrux) |
| status | Shipped |
| type | Standards Track |
| category | Kernel |
| created | 2023-07-31 |
- Expose agent state in a
%gallscry endpoint. - Enable agent backup and restoration.
- Devs opt in to implementing restore functionality.
This UIP was released in 411k. The PR for this can be found here.
- The primary motivation behind adding a new scry endpoint to the agent is to facilitate the essential task of enabling backups for gall agents. As the current scrys in place prove insufficient for backing up these critical agents, the need for a more specialized and robust scry endpoint becomes evident. By introducing a dedicated backup-enabled scry endpoint, the agent's functionality and data preservation capabilities will be significantly enhanced, ensuring the safeguarding of vital information and enabling seamless recovery in the event of unexpected failures or data loss. This improvement will not only provide peace of mind for users but also enhance the overall reliability and resilience of the agent's operations.
-
.^(* %gv /=dude=/$) -
Return type candidates (versioned):
eggwith stripped typeeggsubset with stripped typeeggdata converted tobowl, stripped type, extra data fromegg- e.g.
[bowl page extra]
- e.g.
-
Move egg to
%lull?
- Initial prototype included a subset of a
bowl, andon-save:agent- everything readily accessible.- Possibly relevant data present in an
eggwas omitted.
- Possibly relevant data present in an
~rovnys-ricfersuggested stripping thetypein avaseto avoid including the standard library, reducing size (~3x on a fakezod), and avoiding+cueissues.- The returned value should be immediately
jammable /cueable.- Avoid broken backups.
- Encourage compatible backup / restore implementations.
- Discussion
- Restoring from a backup can be handled in
+on-poke. - Adding an
agent:gallarm e.g.++ on-restore |=(=egg !!)would encourage compatible implementations.- Coordinating a breaking change with
+on-riftwould be ideal, and provide all the building blocks required for an easy to implement, seamless, backup / restoration experience.
- Coordinating a breaking change with
eggsaren't head tagged for versioning.- Grab version # from
-:*spore?
- Grab version # from
- Restoring from a backup can be handled in
~
- All agent state is exposed to userspace.
- This was already possible with a trivial change to
%gall.
- This was already possible with a trivial change to
- Unencrypted backups may contain sensitive data.
- Backups should be verified, or loaded from a trusted source.
Copyright and related rights waived via CC0.