The Services API provides methods to discover and connect to services exposed through your Private Connect infrastructure. Get connection strings, ports, and service metadata programmatically.
const db = await pc.services.getConnection('postgres-prod');console.log(db.connectionString);// postgres://localhost:5432/postgresconsole.log(db.envVar);// DATABASE_URL// Use with pg clientimport { Client } from 'pg';const client = new Client({ connectionString: db.connectionString });await client.connect();
const db = await pc.services.getConnection('mysql-prod');console.log(db.connectionString);// mysql://localhost:3306// Use with mysql2import mysql from 'mysql2/promise';const connection = await mysql.createConnection(db.connectionString);
const cache = await pc.services.getConnection('redis-prod');console.log(cache.connectionString);// redis://localhost:6379// Use with ioredisimport Redis from 'ioredis';const redis = new Redis(cache.connectionString);
const api = await pc.services.getConnection('internal-api');console.log(api.connectionString);// http://localhost:8080// Use with fetchconst response = await fetch(`${api.connectionString}/health`);const data = await response.json();
import { PrivateConnect } from '@privateconnect/sdk';const pc = new PrivateConnect({ apiKey: 'your-api-key' });// Quick connectionconst db = await pc.connect('postgres-prod');console.log(db.connectionString);
For even simpler usage, import the standalone function:
import { connect } from '@privateconnect/sdk';// Uses PRIVATECONNECT_API_KEY from environmentconst db = await connect('postgres-prod');// Or provide configconst cache = await connect('redis-prod', { apiKey: 'your-api-key'});
import { PrivateConnect } from '@privateconnect/sdk';import { Client } from 'pg';const pc = new PrivateConnect({ apiKey: process.env.PRIVATECONNECT_API_KEY!});// Get connection detailsconst db = await pc.connect('postgres-prod');// Connect to databaseconst client = new Client({ connectionString: db.connectionString});await client.connect();// Run queryconst result = await client.query('SELECT NOW()');console.log('Database time:', result.rows[0].now);await client.end();
import { PrivateConnect } from '@privateconnect/sdk';import { Client as PgClient } from 'pg';import Redis from 'ioredis';const pc = new PrivateConnect({ apiKey: process.env.PRIVATECONNECT_API_KEY!});// Connect to multiple servicesconst [database, cache] = await Promise.all([ pc.connect('postgres-prod'), pc.connect('redis-prod'),]);// Initialize clientsconst pg = new PgClient({ connectionString: database.connectionString });const redis = new Redis(cache.connectionString);await Promise.all([ pg.connect(), redis.ping(),]);console.log('Connected to database and cache');// Use in applicationconst userId = '12345';// Check cachelet user = await redis.get(`user:${userId}`);if (!user) { // Query database const result = await pg.query( 'SELECT * FROM users WHERE id = $1', [userId] ); user = result.rows[0]; // Store in cache await redis.setex(`user:${userId}`, 3600, JSON.stringify(user));}console.log('User:', user);// Cleanupawait pg.end();await redis.quit();
// Set environment variablesconst db = await pc.connect('postgres-prod');process.env[db.envVar] = db.connectionString;// Now your app can use DATABASE_URLconsole.log(process.env.DATABASE_URL);