OCI NodeJS Client for Distributed Database Service

2.130.0 · active · verified Wed Apr 22

The `oci-distributeddatabase` package provides the TypeScript and JavaScript client for managing resources within Oracle Cloud Infrastructure's (OCI) Distributed Database Service. This service is designed for deploying and managing Globally Distributed Databases and Globally Distributed Autonomous Databases, which offer linearly scalable, multi-model database solutions ensuring high availability, low latency, and adherence to data sovereignty requirements. The current stable version is 2.130.0, with Oracle maintaining a frequent release cadence, often aligning security updates with their Critical Patch Update program. As part of the broader OCI SDK, it leverages a consistent authentication and configuration model across all OCI services. It's built for Node.js environments (supporting versions 14, 16, 18, 20) and ships with TypeScript type definitions, but it does not support browser environments.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to initialize the OCI Distributed Database client, authenticate using a configuration file, and then list Distributed Autonomous Databases within a specified OCI compartment.

import { DistributedDatabaseClient } from 'oci-distributeddatabase';
import { ConfigFileAuthenticationDetailsProvider } from 'oci-common';
import * as models from 'oci-distributeddatabase/lib/model';

// Ensure OCI configuration is set up at ~/.oci/config or via environment variables.
// For programmatic configuration, ensure OCI_CONFIG_FILE and OCI_PROFILE_NAME are set,
// or provide explicit paths.
// For example:
// process.env.OCI_CONFIG_FILE = '~/.oci/config';
// process.env.OCI_PROFILE_NAME = 'DEFAULT';

const compartmentId = process.env.OCI_COMPARTMENT_ID ?? '';

async function listDistributedAutonomousDatabases() {
  if (!compartmentId) {
    console.error('Error: OCI_COMPARTMENT_ID environment variable is not set.');
    process.exit(1);
  }

  try {
    const provider = new ConfigFileAuthenticationDetailsProvider();
    const client = new DistributedDatabaseClient({ authenticationDetailsProvider: provider });

    console.log(`Listing Distributed Autonomous Databases in compartment: ${compartmentId}...`);

    const listRequest: models.ListDistributedAutonomousDatabasesRequest = {
      compartmentId: compartmentId,
      limit: 10 // Limiting results for brevity
    };

    const response = await client.listDistributedAutonomousDatabases(listRequest);

    if (response.distributedAutonomousDatabaseCollection.items.length > 0) {
      console.log('Found Distributed Autonomous Databases:');
      for (const db of response.distributedAutonomousDatabaseCollection.items) {
        console.log(`- ${db.displayName} (OCID: ${db.id}) - Lifecycle State: ${db.lifecycleState}`);
      }
    } else {
      console.log('No Distributed Autonomous Databases found in the specified compartment.');
    }
  } catch (error) {
    console.error('Failed to list Distributed Autonomous Databases:', error);
  }
}

listDistributedAutonomousDatabases();

view raw JSON →