Skip to content

Installation

Doug Fennell edited this page Sep 25, 2025 · 3 revisions

Installation

This guide covers installing and setting up the RDCP SDK in your Node.js application.

Requirements

  • Node.js: 18.0.0 or higher (native fetch in client SDK)
  • Package Manager: npm, yarn, or pnpm
  • Framework: Express 4.18+, Fastify 4.0+, Koa 2.0+, or Next.js 13+

Install via npm

npm install @rdcp.dev/server

Install via yarn

yarn add @rdcp.dev/server

Install via pnpm

pnpm add @rdcp.dev/server

Verify Installation

Create a test file to verify the SDK is installed correctly:

// test-rdcp.js
const { adapters, auth } = require('@rdcp.dev/server')

console.log('βœ… RDCP SDK installed successfully!')
console.log('Available adapters:', Object.keys(adapters))
console.log('Auth module loaded:', !!auth.validateRDCPAuth)

Run the test:

node test-rdcp.js

Expected output:

βœ… RDCP SDK installed successfully!
Available adapters: [ 'express', 'fastify', 'koa' ]
Auth module loaded: true

Environment Setup

Required Environment Variables

Set up your API key for authentication:

# .env file
RDCP_API_KEY="your-secure-32-plus-character-api-key-here"

The API key must be at least 32 characters for security compliance.

Optional Environment Variables

# Authentication level (default: basic)
RDCP_AUTH_LEVEL="basic"

# JWT secret for standard/enterprise auth
JWT_SECRET="your-jwt-signing-secret"

# Server configuration
NODE_ENV="development"
PORT="3000"

Package Exports

The RDCP SDK provides multiple export paths for different use cases:

// Main SDK exports
const { adapters, auth, utils } = require('@rdcp.dev/server')

// Framework-specific adapters
const express = require('@rdcp.dev/server/server/adapters/express')
const fastify = require('@rdcp.dev/server/server/adapters/fastify')
const koa = require('@rdcp.dev/server/server/adapters/koa')

// Authentication modules
const auth = require('@rdcp.dev/server/auth')

// Endpoint implementations
const { protocolDiscovery, debugSystemDiscovery } = require('@rdcp.dev/server/endpoints/discovery')
const { runtimeControl } = require('@rdcp.dev/server/endpoints/control')

// Utilities
const { extractTenantContext } = require('@rdcp.dev/server/utils/tenant')

TypeScript Support

The SDK includes full TypeScript type definitions:

import { adapters, auth } from '@rdcp.dev/server'
import type { RDCPClientConfig, ControlRequest } from '@rdcp.dev/server'

const middleware = adapters.express.createRDCPMiddleware({
  authenticator: auth.validateRDCPAuth
})

Development Dependencies

For development and testing, you may want to install additional packages:

# Testing framework used by RDCP SDK
npm install --save-dev jest supertest

# TypeScript support
npm install --save-dev typescript @types/node

# Framework dependencies (choose what you need)
npm install express fastify koa

Peer Dependencies

The SDK has optional peer dependencies for different frameworks:

{
  "peerDependencies": {
    "express": "^4.18.0",
    "fastify": "^4.0.0"
  },
  "peerDependenciesMeta": {
    "express": { "optional": true },
    "fastify": { "optional": true }
  }
}

Install only the framework you're using:

# For Express.js
npm install express

# For Fastify  
npm install fastify

# For Koa (no peer dependency)
npm install koa

Docker Installation

If using Docker, add to your Dockerfile:

FROM node:18-alpine
WORKDIR /app

# Copy package files
COPY package*.json ./

# Install dependencies including RDCP SDK
RUN npm ci --only=production

# Copy application code
COPY . .

# Set environment variables
ENV RDCP_API_KEY="your-production-api-key-32-characters-minimum"
ENV NODE_ENV="production"

EXPOSE 3000
CMD ["npm", "start"]

Troubleshooting

Common Installation Issues

Issue: Cannot find module '@rdcp/server' Solution: Ensure you've run npm install @rdcp/server and the package is listed in your package.json

Issue: RDCP_API_KEY must be at least 32 characters
Solution: Set a longer API key in your environment variables

Issue: TypeScript errors with imports Solution: Ensure you have @types/node installed and proper TypeScript configuration

Verify Framework Compatibility

Test your specific framework integration:

// For Express
const express = require('express')
const { adapters } = require('@rdcp.dev/server')
console.log('Express adapter:', !!adapters.express)

// For Fastify
const fastify = require('fastify')
const { adapters } = require('@rdcp.dev/server')  
console.log('Fastify adapter:', !!adapters.fastify)

Next Steps

Once installation is complete:

  1. Basic Usage - Add RDCP endpoints to your application
  2. Authentication Setup - Configure security for your endpoints
  3. Framework Integration - Choose your framework-specific guide:

Also helpful:

Clone this wiki locally