CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-cloudinary

Cloudinary Node SDK for media management, transformation, upload, and optimization

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

Overview
Eval results
Files

configuration.mddocs/

Configuration

Cloudinary configuration management for setting up credentials, CDN preferences, and global options. Configuration can be set globally or per-request.

Capabilities

Global Configuration

Set configuration options globally for all subsequent operations.

/**
 * Configure Cloudinary with credentials and options
 * @param options - Configuration options object
 * @returns Current configuration object
 */
function config(options?: ConfigOptions): ConfigOptions;

interface ConfigOptions {
  /** Your Cloudinary cloud name */
  cloud_name?: string;
  /** Your Cloudinary API key */
  api_key?: string;
  /** Your Cloudinary API secret */
  api_secret?: string;
  /** API proxy configuration */
  api_proxy?: string;
  /** Use private CDN (custom domain) */
  private_cdn?: boolean;
  /** Custom secure distribution domain */
  secure_distribution?: string;
  /** Force version parameter in URLs */
  force_version?: boolean;
  /** Automatically detect SSL/HTTPS */
  ssl_detected?: boolean;
  /** Force secure (HTTPS) URLs */
  secure?: boolean;
  /** Use CDN subdomain for better performance */
  cdn_subdomain?: boolean;
  /** Use secure CDN subdomain */
  secure_cdn_subdomain?: boolean;
  /** Custom CNAME for private CDN */
  cname?: string;
  /** Shorten URLs by removing cloud_name */
  shorten?: boolean;
  /** Sign URLs for security */
  sign_url?: boolean;
  /** Use long URL signature */
  long_url_signature?: boolean;
  /** Use root path instead of version path */
  use_root_path?: boolean;
  /** Authentication token configuration */
  auth_token?: AuthTokenOptions;
  /** Account ID for provisioning API */
  account_id?: string;
  /** Provisioning API key */
  provisioning_api_key?: string;
  /** Provisioning API secret */
  provisioning_api_secret?: string;
  /** OAuth token */
  oauth_token?: string;
  [key: string]: any;
}

interface AuthTokenOptions {
  /** Authentication token key */
  key: string;
  /** Access control list */
  acl?: string;
  /** IP address restriction */
  ip?: string;
  /** Token start time (Unix timestamp) */
  start_time?: number;
  /** Token duration in seconds */
  duration?: number;
  /** Token expiration time (Unix timestamp) */
  expiration?: number;
}

Usage Examples:

const cloudinary = require('cloudinary');

// Basic configuration
cloudinary.config({
  cloud_name: 'demo',
  api_key: '123456789012345',
  api_secret: 'abcdefghijklmnopqrstuvwxyz123456'
});

// Advanced configuration with CDN options
cloudinary.config({
  cloud_name: 'demo',
  api_key: '123456789012345',
  api_secret: 'abcdefghijklmnopqrstuvwxyz123456',
  secure: true,
  cdn_subdomain: true,
  private_cdn: true,
  secure_distribution: 'cdn.example.com'
});

// Get current configuration
const currentConfig = cloudinary.config();
console.log(currentConfig.cloud_name);

Environment Variable Configuration

Cloudinary automatically reads configuration from environment variables.

// Environment variables (no explicit function call needed)
// CLOUDINARY_URL=cloudinary://api_key:api_secret@cloud_name
// CLOUDINARY_ACCOUNT_URL=account://account_id:provisioning_api_key:provisioning_api_secret@account_id

Usage Examples:

# Set environment variable
export CLOUDINARY_URL=cloudinary://123456789012345:abcdefghijklmnopqrstuvwxyz123456@demo

# For provisioning API
export CLOUDINARY_ACCOUNT_URL=account://account123:prov_key:prov_secret@account123
// Configuration is automatically loaded from environment
const cloudinary = require('cloudinary');

// No explicit config() call needed - uses environment variables
const url = cloudinary.url('sample.jpg');

Per-Request Configuration

Override global configuration for specific operations.

/**
 * Most API functions accept configuration options as parameters
 * These override global configuration for that specific request
 */

Usage Examples:

const cloudinary = require('cloudinary');

// Override cloud_name for this URL generation
const url = cloudinary.url('sample.jpg', {
  cloud_name: 'different_cloud',
  secure: true
});

// Override configuration for upload
const result = await cloudinary.v2.uploader.upload('image.jpg', {
  cloud_name: 'different_cloud',
  api_key: 'different_key',
  api_secret: 'different_secret',
  public_id: 'my_image'
});

Configuration Access

Get and set individual configuration values.

/**
 * Get specific configuration value
 * @param key - Configuration key to retrieve
 * @returns Configuration value
 */
function config<K extends keyof ConfigOptions>(key: K): ConfigOptions[K];

/**
 * Set specific configuration value
 * @param key - Configuration key to set
 * @param value - Value to set
 * @returns Updated configuration object
 */
function config<K extends keyof ConfigOptions>(
  key: K,
  value: ConfigOptions[K]
): ConfigOptions;

Usage Examples:

const cloudinary = require('cloudinary');

// Get specific config value
const cloudName = cloudinary.config('cloud_name');

// Set specific config value
cloudinary.config('secure', true);
cloudinary.config('quality', 'auto');

// Chain multiple configurations
cloudinary.config({
  secure: true,
  quality: 'auto',
  fetch_format: 'auto'
});

Configuration Validation

const cloudinary = require('cloudinary');

// Validate configuration by testing API connectivity
try {
  const result = await cloudinary.v2.api.ping();
  console.log('Configuration valid:', result);
} catch (error) {
  console.error('Configuration error:', error.message);
}

Types

interface ConfigOptions {
  cloud_name?: string;
  api_key?: string;
  api_secret?: string;
  api_proxy?: string;
  private_cdn?: boolean;
  secure_distribution?: string;
  force_version?: boolean;
  ssl_detected?: boolean;
  secure?: boolean;
  cdn_subdomain?: boolean;
  secure_cdn_subdomain?: boolean;
  cname?: string;
  shorten?: boolean;
  sign_url?: boolean;
  long_url_signature?: boolean;
  use_root_path?: boolean;
  auth_token?: AuthTokenOptions;
  account_id?: string;
  provisioning_api_key?: string;
  provisioning_api_secret?: string;
  oauth_token?: string;
  [key: string]: any;
}

interface AuthTokenOptions {
  key: string;
  acl?: string;
  ip?: string;
  start_time?: number;
  duration?: number;
  expiration?: number;
}

Install with Tessl CLI

npx tessl i tessl/npm-cloudinary

docs

admin-api.md

analysis.md

configuration.md

html-generation.md

index.md

provisioning.md

search.md

upload.md

url-generation.md

tile.json