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
Inherited from
Properties
cache
protectedcache:ICacheProvider
Defined in: src/plugins/builtin/base-plugin.ts:88
Cache provider (available after initialization).
Inherited from
context
protectedcontext:IPluginContext
Defined in: src/plugins/builtin/base-plugin.ts:78
Plugin context (available after initialization).
Inherited from
id
readonlyid:"pub.chive.plugin.doi"='pub.chive.plugin.doi'
Defined in: src/plugins/builtin/doi-registration.ts:119
Plugin ID.
Overrides
logger
protectedlogger:ILogger
Defined in: src/plugins/builtin/base-plugin.ts:83
Logger instance (available after initialization).
Inherited from
manifest
readonlymanifest:IPluginManifest
Defined in: src/plugins/builtin/doi-registration.ts:124
Plugin manifest.
Overrides
metrics
protectedmetrics:IMetrics
Defined in: src/plugins/builtin/base-plugin.ts:93
Metrics provider (available after initialization).
Inherited from
Methods
getConfig()
protectedgetConfig<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
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()
protectedgetRequiredConfig<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
getState()
getState():
PluginState
Defined in: src/plugins/builtin/base-plugin.ts:162
Gets current plugin state.
Returns
Current lifecycle state
Inherited from
initialize()
initialize(
context):Promise<void>
Defined in: src/plugins/builtin/base-plugin.ts:111
Initializes the plugin.
Parameters
context
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
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()
protectedonInitialize():Promise<void>
Defined in: src/plugins/builtin/doi-registration.ts:166
Initializes the plugin.
Returns
Promise<void>
Overrides
onShutdown()
protectedonShutdown():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
recordCounter()
protectedrecordCounter(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
recordGauge()
protectedrecordGauge(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
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
startTimer()
protectedstartTimer(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