Skip to content

Class: Service ​

Defined in: packages/core/src/services/service.ts:53

A connection to the Firebird Service Manager (service_mgr). Supports server metadata queries and streaming service actions (e.g. database statistics). Uses the same SRP handshake + wire crypt as a normal attachment. Call disconnect() when done.

Methods ​

backup() ​

ts
backup(database, backupFile): Promise<string>;

Defined in: packages/core/src/services/service.ts:146

Back up a database with server-side gbak. BOTH paths are SERVER paths — the .fbk is written on the server machine, not transferred to the client. Runs verbose and drains the gbak log to completion (the log is returned) — that is also what signals the service is done.

Parameters ​

ParameterType
databasestring
backupFilestring

Returns ​

Promise<string>


disconnect() ​

ts
disconnect(): Promise<void>;

Defined in: packages/core/src/services/service.ts:280

Returns ​

Promise<void>


getServerInfo() ​

ts
getServerInfo(): Promise<ServerInfo>;

Defined in: packages/core/src/services/service.ts:99

Query the server for version, implementation and security-db path.

Returns ​

Promise<ServerInfo>


getStatistics() ​

ts
getStatistics(database): Promise<string>;

Defined in: packages/core/src/services/service.ts:130

Retrieve database statistics (gstat) as text, streamed to completion.

Parameters ​

ParameterType
databasestring

Returns ​

Promise<string>


nbackup() ​

ts
nbackup(
   database, 
   backupFile, 
options?): Promise<string>;

Defined in: packages/core/src/services/service.ts:191

Physical incremental backup via server-side nbackup — the fast path for multi-GB maintenance windows (page-level copy, database stays online), where gbak is a logical dump. BOTH paths are SERVER paths. Level 0 is a full physical copy; level n captures pages changed since the last level n−1 backup. FB4+ can address the base backup by GUID (from RDB$BACKUP_HISTORY) instead of a level. Returns the (usually empty) service output; completion is signaled by output EOF.

ts
await svc.nbackup('/data/app.fdb', '/backups/app.nbk0', { level: 0 });
await svc.nbackup('/data/app.fdb', '/backups/app.nbk1', { level: 1 });

Parameters ​

ParameterType
databasestring
backupFilestring
optionsNBackupOptions

Returns ​

Promise<string>


nrestore() ​

ts
nrestore(
   backupFiles, 
   database, 
options?): Promise<string>;

Defined in: packages/core/src/services/service.ts:217

Restore an nbackup chain (level 0 file first, then each delta in order) into a NEW database — the target must not exist; nbackup never overwrites. All paths are SERVER paths.

ts
await svc.nrestore(['/backups/app.nbk0', '/backups/app.nbk1'], '/data/restored.fdb');

Parameters ​

ParameterType
backupFilesstring[]
databasestring
optionsNRestoreOptions

Returns ​

Promise<string>


restore() ​

ts
restore(
   backupFile, 
   database, 
options?): Promise<string>;

Defined in: packages/core/src/services/service.ts:161

Restore a server-side .fbk into a database (both paths on the server). Creates the target by default (fails if it exists); replace: true overwrites an existing database. Returns the verbose gbak log.

Parameters ​

ParameterType
backupFilestring
databasestring
options{ pageSize?: number; replace?: boolean; }
options.pageSize?number
options.replace?boolean

Returns ​

Promise<string>


serviceInfo() ​

ts
serviceInfo(
   resultItems, 
   sendSpb?, 
bufferLength?): Promise<Buffer<ArrayBufferLike>>;

Defined in: packages/core/src/services/service.ts:242

Low-level: one op_service_info round trip; returns the info buffer. Wire order (protocol.cpp): p_info_items (a send-SPB, usually empty), then p_info_recv_items (the isc_info_svc_* codes we want back).

Parameters ​

ParameterTypeDefault value
resultItemsBufferundefined
sendSpbBuffer...
bufferLengthnumber65535

Returns ​

Promise<Buffer<ArrayBufferLike>>


serviceStart() ​

ts
serviceStart(spb): Promise<void>;

Defined in: packages/core/src/services/service.ts:229

Low-level: start an arbitrary service action from a raw SPB.

Parameters ​

ParameterType
spbBuffer

Returns ​

Promise<void>


connect() ​

ts
static connect(raw): Promise<Service>;

Defined in: packages/core/src/services/service.ts:68

Parameters ​

ParameterType
rawServiceConnectOptions

Returns ​

Promise<Service>

MIT Licensed. Contains data derived from the Firebird project under IDPL/IPL.