elsa-workflows / elsa-workflows/elsa-studio
Core: Persistence Service Abstraction (`IStudioSettings`)
- Dominant language
- C#
- Stars
- 301
- Forks
- 181
- Avg merge
- 17h 12m
- Merged PRs (30d)
- 42
Description
### Why
Create a reusable Blazor service for reading and writing user preferences and UI state, pluggable with `LocalStorage` and `SessionStorage` out of the box (and extendable for profile/server storage).
### Acceptance Criteria
- Service exposes async Get/Set/Remove/Watch for each setting definition
- Service dynamically selects `localStorage` or `sessionStorage` based on setting definition
- JSON store envelope includes version, validation & migration (auto-migration during get)
- Debounced writes supported for high-frequency settings
- Provider class abstraction for future extensibility
- Unit test project covering basic use cases
### Deliverables
- `IStudioSettings` interface & implementation (e.g. in `Elsa.Studio.Core`)
- JavaScript interop implementation for storage (add to DomInterop if needed)
- Example of each: reading, writing, clearing a setting
- Unit test project
Contributor guide
Assessment
This issue has not been assessed yet.