Skip to main content

Class: DoiRegistrationPlugin

Defined in: src/plugins/builtin/doi-registration.ts:115

DOI registration plugin.

Remarks

Mints DOIs for preprints via DataCite when requested. Requires DataCite credentials configured in plugin config.

Example

const plugin = new DoiRegistrationPlugin();
await manager.loadBuiltinPlugin(plugin, {
dataciteApiUrl: 'https://api.datacite.org',
datacitePrefix: '10.5072', // Test prefix
dataciteRepositoryId: 'xxx',
datacitePassword: 'xxx',
});

Extends

Constructors

new DoiRegistrationPlugin()

new DoiRegistrationPlugin(): DoiRegistrationPlugin

Returns

DoiRegistrationPlugin

Inherited from

BasePlugin.constructor

Properties

cache

protected cache: ICacheProvider

Defined in: src/plugins/builtin/base-plugin.ts:88

Cache provider (available after initialization).

Inherited from

BasePlugin.cache


context

protected context: IPluginContext

Defined in: src/plugins/builtin/base-plugin.ts:78

Plugin context (available after initialization).

Inherited from

BasePlugin.context


id

readonly id: "pub.chive.plugin.doi" = 'pub.chive.plugin.doi'

Defined in: src/plugins/builtin/doi-registration.ts:119

Plugin ID.

Overrides

BasePlugin.id


logger

protected logger: ILogger

Defined in: src/plugins/builtin/base-plugin.ts:83

Logger instance (available after initialization).

Inherited from

BasePlugin.logger


manifest

readonly manifest: IPluginManifest

Defined in: src/plugins/builtin/doi-registration.ts:124

Plugin manifest.

Overrides

BasePlugin.manifest


metrics

protected metrics: IMetrics

Defined in: src/plugins/builtin/base-plugin.ts:93

Metrics provider (available after initialization).

Inherited from

BasePlugin.metrics

Methods

getConfig()

protected getConfig<T>(key): undefined | T

Defined in: src/plugins/builtin/base-plugin.ts:226

Gets a configuration value with type safety.

Type Parameters

T

Parameters

key

string

Configuration key

Returns

undefined | T

Configuration value or undefined

Example

const apiKey = this.getConfig<string>('apiKey');

Inherited from

BasePlugin.getConfig


getDoi()

getDoi(preprintUri): Promise<null | DoiMetadata>

Defined in: src/plugins/builtin/doi-registration.ts:330

Gets DOI for a preprint if already minted.

Parameters

preprintUri

string

Preprint AT URI

Returns

Promise<null | DoiMetadata>

DOI metadata or null


getRequiredConfig()

protected getRequiredConfig<T>(key): T

Defined in: src/plugins/builtin/base-plugin.ts:242

Gets a required configuration value.

Type Parameters

T

Parameters

key

string

Configuration key

Returns

T

Configuration value

Throws

Error if key not found

Example

const apiKey = this.getRequiredConfig<string>('apiKey');

Inherited from

BasePlugin.getRequiredConfig


getState()

getState(): PluginState

Defined in: src/plugins/builtin/base-plugin.ts:162

Gets current plugin state.

Returns

PluginState

Current lifecycle state

Inherited from

BasePlugin.getState


initialize()

initialize(context): Promise<void>

Defined in: src/plugins/builtin/base-plugin.ts:111

Initializes the plugin.

Parameters

context

IPluginContext

Plugin context with injected dependencies

Returns

Promise<void>

Remarks

Sets up context and calls onInitialize(). Subclasses should override onInitialize() instead of this method.

Inherited from

BasePlugin.initialize


mintDoi()

mintDoi(data): Promise<DoiMetadata>

Defined in: src/plugins/builtin/doi-registration.ts:240

Mints a DOI for a preprint.

Parameters

data

Preprint data

abstract

string

authors

readonly DoiAuthor[]

title

string

uri

string

Returns

Promise<DoiMetadata>

DOI metadata


onInitialize()

protected onInitialize(): Promise<void>

Defined in: src/plugins/builtin/doi-registration.ts:166

Initializes the plugin.

Returns

Promise<void>

Overrides

BasePlugin.onInitialize


onShutdown()

protected onShutdown(): Promise<void>

Defined in: src/plugins/builtin/base-plugin.ts:211

Override in subclass for shutdown logic.

Returns

Promise<void>

Remarks

Called during shutdown(). Use this to:

  • Save state
  • Close connections
  • Clean up resources

Default implementation does nothing.

Example

protected async onShutdown(): Promise<void> {
await this.saveState();
this.connection?.close();
}

Inherited from

BasePlugin.onShutdown


recordCounter()

protected recordCounter(name, labels?, value?): void

Defined in: src/plugins/builtin/base-plugin.ts:257

Records a counter metric.

Parameters

name

string

Metric name

labels?

Record<string, string>

Optional labels

value?

number

Optional increment value (default 1)

Returns

void

Inherited from

BasePlugin.recordCounter


recordGauge()

protected recordGauge(name, value, labels?): void

Defined in: src/plugins/builtin/base-plugin.ts:268

Records a gauge metric.

Parameters

name

string

Metric name

value

number

Gauge value

labels?

Record<string, string>

Optional labels

Returns

void

Inherited from

BasePlugin.recordGauge


shutdown()

shutdown(): Promise<void>

Defined in: src/plugins/builtin/base-plugin.ts:142

Shuts down the plugin.

Returns

Promise<void>

Remarks

Calls onShutdown() and updates state. Subclasses should override onShutdown() instead of this method.

Inherited from

BasePlugin.shutdown


startTimer()

protected startTimer(name, labels?): () => void

Defined in: src/plugins/builtin/base-plugin.ts:286

Starts a timer for histogram metrics.

Parameters

name

string

Metric name

labels?

Record<string, string>

Optional labels

Returns

Function

Function to call when operation completes

Returns

void

Example

const endTimer = this.startTimer('api_request');
await this.fetchData();
endTimer(); // Records duration

Inherited from

BasePlugin.startTimer