Skip to content

@graphty/graphty-element / ai / ApiKeyManager

Class: ApiKeyManager ​

Defined in: graphty-element/src/ai/keys/ApiKeyManager.ts:66

Manages API keys for LLM providers. Supports both session-only and persistent encrypted storage. Uses encrypt-storage package for AES encryption when persistence is enabled.

Persistence restores itself: a manager constructed after a reload finds the keys an earlier page persisted (with the built-in key, or with a custom key from the same tab) and turns persistence back on. A host calls enablePersistence(), disablePersistence() and setKey() and nothing else.

Constructors ​

Constructor ​

new ApiKeyManager(options?): ApiKeyManager

Defined in: graphty-element/src/ai/keys/ApiKeyManager.ts:78

Create a key manager and restore any keys a previous page persisted.

Parameters ​

options? ​

ApiKeyManagerOptions = {}

Where persisted keys live

Returns ​

ApiKeyManager

Methods ​

clear() ​

clear(): void

Defined in: graphty-element/src/ai/keys/ApiKeyManager.ts:232

Clear all keys, in memory and in storage. Persistence stays on, so it is still on after a reload.

Returns ​

void


disablePersistence() ​

disablePersistence(clearStorage?): void

Defined in: graphty-element/src/ai/keys/ApiKeyManager.ts:131

Disable persistent storage. With clearStorage false the stored keys stay where they are: the next page load restores them, and turns persistence back on, if they were saved with the built-in encryption key. Keys saved with a custom key wait for enablePersistence with it.

Parameters ​

clearStorage? ​

boolean = true

Whether to clear stored keys from storage (default: true)

Returns ​

void


enablePersistence() ​

enablePersistence(config?): void

Defined in: graphty-element/src/ai/keys/ApiKeyManager.ts:96

Enable persistent storage for API keys with AES encryption. Keys already in memory are saved, and keys already in storage under the same encryption key are loaded.

Parameters ​

config? ​

PersistenceConfig = {}

Persistence configuration (default: built-in encryption key)

Returns ​

void

Throws ​

Error if encryption key is empty or too short (minimum 10 characters)


getConfiguredProviders() ​

getConfiguredProviders(): ProviderType[]

Defined in: graphty-element/src/ai/keys/ApiKeyManager.ts:225

Get a list of providers that have keys configured.

Returns ​

ProviderType[]

Array of provider types with keys


getDefaultProvider() ​

getDefaultProvider(): ProviderType | null

Defined in: graphty-element/src/ai/keys/ApiKeyManager.ts:205

Get the provider the reader chose as their default.

Returns ​

ProviderType | null

The default provider, or null if none was chosen


getKey() ​

getKey(provider): string | undefined

Defined in: graphty-element/src/ai/keys/ApiKeyManager.ts:175

Get the API key for a provider.

Parameters ​

provider ​

ProviderType

The provider type

Returns ​

string | undefined

The API key or undefined if not set


hasKey() ​

hasKey(provider): boolean

Defined in: graphty-element/src/ai/keys/ApiKeyManager.ts:184

Check if a key is set for a provider.

Parameters ​

provider ​

ProviderType

The provider type

Returns ​

boolean

True if a key is set


isPersistenceEnabled() ​

isPersistenceEnabled(): boolean

Defined in: graphty-element/src/ai/keys/ApiKeyManager.ts:146

Check if persistence is enabled.

Returns ​

boolean

True if persistence is enabled


removeKey() ​

removeKey(provider): void

Defined in: graphty-element/src/ai/keys/ApiKeyManager.ts:192

Remove the API key for a provider.

Parameters ​

provider ​

ProviderType

The provider type

Returns ​

void


setDefaultProvider() ​

setDefaultProvider(provider): void

Defined in: graphty-element/src/ai/keys/ApiKeyManager.ts:213

Choose the reader's default provider. It is persisted with the keys when persistence is on.

Parameters ​

provider ​

ProviderType | null

The provider, or null to clear the choice

Returns ​

void


setKey() ​

setKey(provider, key): void

Defined in: graphty-element/src/ai/keys/ApiKeyManager.ts:156

Set an API key for a provider.

Parameters ​

provider ​

ProviderType

The provider type

key ​

string

The API key

Returns ​

void

Throws ​

Error if key is empty or whitespace-only


toString() ​

toString(): string

Defined in: graphty-element/src/ai/keys/ApiKeyManager.ts:241

Custom toString to avoid exposing keys.

Returns ​

string

String representation without sensitive data