donobu
Version:
Create browser automations with an LLM agent and replay them as Playwright scripts.
40 lines • 1.72 kB
TypeScript
/**
* Persistence layer for Donobu flow environment data - a user-managed key-value
* store that supplies configuration values (API keys, base URLs, feature flags,
* etc.) to flows at runtime.
*
* **Not `process.env`.** Despite the "env" name, these values are *not* the
* Node.js process environment variables. They are persisted, per-project data
* that flows opt into via an allow-list (`envVars` in flow metadata). At
* execution time, only the declared names are hydrated and made available to
* tools through template interpolation (`{{$.env.VAR_NAME}}`).
*
* Multiple persistence backends can coexist (SQLite, in-memory, cloud storage)
* and are layered by {@link EnvPersistenceRegistry} according to
* `PERSISTENCE_PRIORITY`. Reads resolve from the first layer that holds a
* value; writes fan out to every layer.
*
* @see EnvDataManager - business-logic wrapper that adds validation and
* multi-layer read/write orchestration on top of this interface.
* @see EnvPersistenceRegistry - factory that assembles the ordered layer stack.
*/
export interface EnvPersistence {
/**
* Set a piece of environment data that is available across all flows.
*/
setEnvironmentDatum(key: string, value: string): Promise<void>;
/**
* Delete a piece of environment data by its key.
* No-op if the data does not exist.
*/
deleteEnvironmentDatum(key: string): Promise<void>;
/**
* Retrieve a piece of environment data by its key.
*/
getEnvironmentDatum(key: string): Promise<string | undefined>;
/**
* Get all environment data.
*/
getEnvironmentData(): Promise<Record<string, string>>;
}
//# sourceMappingURL=EnvPersistence.d.ts.map