@better-auth-ui/core
Version:
Authentication components and data utilities for [Better Auth](https://better-auth.com), available for React and Solid.
95 lines (94 loc) • 2.98 kB
TypeScript
import { ApiKeyExpirationOptions } from './api-key-expiration';
import { ApiKeyLocalization } from './api-key-localization';
export type ApiKeyPluginOptions = {
/**
* Override the plugin's default localization strings.
* @remarks `ApiKeyLocalization`
*/
localization?: Partial<ApiKeyLocalization>;
/**
* Enable organization-owned API keys.
*
* When `true`, the plugin contributes an organization-scoped API keys card
* to `<OrganizationSettings />`, and list/create/delete operations made on
* behalf of an organization send `configId: "organization"`.
*
* Requires a matching server-side `apiKey` config entry with
* `configId: "organization"` and `references: "organization"`:
*
* ```ts
* apiKey([
* { configId: "default", references: "user" },
* { configId: "organization", references: "organization" }
* ])
* ```
*
* @default false
*/
organization?: boolean;
/**
* Configure the expiration choices shown when a user creates an API key.
*
* Set this to `false` to hide the expiration field and preserve the Better
* Auth server default. Intervals are configured in days and sent to Better
* Auth as seconds.
*
* @default { intervals: [30, 90], defaultInterval: 30, allowNever: true }
*/
keyExpiration?: ApiKeyExpirationOptions | false;
/** API key configurations users can choose from. */
configurations?: ApiKeyConfiguration[];
/** Number of keys shown per page. @default 10 */
pageSize?: number;
};
export type ApiKeyConfiguration = {
id: string;
label: string;
description?: string;
organization?: boolean;
};
export declare const apiKeyPlugin: ((options?: ApiKeyPluginOptions | undefined) => {
localization: {
apiKey: string;
apiKeys: string;
apiKeysDescription: string;
createApiKey: string;
noApiKeys: string;
name: string;
expiration: string;
day: string;
days: string;
never: string;
created: string;
expires: string;
neverExpires: string;
newApiKey: string;
newApiKeyWarning: string;
deleteApiKey: string;
deleteApiKeyWarning: string;
dismissNewKey: string;
editApiKey: string;
configuration: string;
enabled: string;
disabled: string;
requests: string;
remaining: string;
lastRequest: string;
neverRequested: string;
sortBy: string;
newest: string;
oldest: string;
nameAscending: string;
nameDescending: string;
previousPage: string;
nextPage: string;
};
organization: boolean;
keyExpiration: false | import('./api-key-expiration').ResolvedApiKeyExpirationOptions;
configurations: ApiKeyConfiguration[];
pageSize: number;
} & {
id: "apiKey";
}) & {
id: "apiKey";
};