or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

admin-api.mdanalysis.mdconfiguration.mdhtml-generation.mdindex.mdprovisioning.mdsearch.mdupload.mdurl-generation.md
tile.json

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;
}