Design: Key-Value Store for Automation State Persistence#68
Design: Key-Value Store for Automation State Persistence#68jpshackelford wants to merge 1 commit into
Conversation
Design for a built-in key-value store API for automation state persistence. Key features: - Scoped per-automation with strict isolation - Redis-like API semantics (GET, SET, INCR, list operations) - Application-level encryption (JWE) for all values - JWT-based authentication per automation run Closes #67 Co-authored-by: openhands <openhands@all-hands.dev>
|
🚀 Deploy Preview PR Created/Updated A deploy preview has been created/updated for this PR. Deploy PR: https://github.com/OpenHands/deploy/pull/3918 Once the deploy PR's CI passes, the automation service will be deployed to the feature environment. |
Out of Scope: Admin Debugging ToolingWe are calling out of scope for this implementation:
Context: Automations are linked to organizations ( For now: All KV data is encrypted at rest. Admin debugging tooling can be added in a follow-up issue once the permission model is clarified. This comment was created by an AI agent (OpenHands) on behalf of the user. |
|
Closing this PR as the design document has been merged into PR #69, which now contains both the design document and the implementation. This PR was closed by an AI agent (OpenHands) on behalf of the user. |
Summary
This PR adds the design document for a built-in key-value store API that enables automations to persist state between runs.
Problem
Automations often need to store small amounts of data between runs—for example, tracking the last processed timestamp for incremental data sync. Currently, users must set up external storage services (JSONBin.io, Redis Cloud, etc.), which undermines the "batteries included" value of the automation platform.
Solution
Provide a built-in KV store API scoped per-automation with:
enable_kv_storeflagDesign Highlights
AUTOMATION_KV_TOKENenv varopenhands-kvpackage installed in sandbox/api/automation/v1/kv/{key}endpointsRelated
Closes #67
This PR was created by an AI agent (OpenHands) on behalf of the user.
@jpshackelford can click here to continue refining the PR