meloqui

Security Policy

Supported Versions

We take security seriously and aim to provide security updates for the following versions:

Version Supported
0.1.x :white_check_mark:
< 0.1 :x:

Reporting a Vulnerability

Please do not report security vulnerabilities through public GitHub issues.

If you discover a security vulnerability in meloqui, please report it privately to help us address it before public disclosure.

How to Report

  1. GitHub Security Advisories (Recommended): Use GitHub’s private vulnerability reporting
    • Go to the Security tab of this repository
    • Click “Report a vulnerability”
    • Fill out the advisory form with details
  2. Include in your report:
    • Description of the vulnerability
    • Steps to reproduce the issue
    • Potential impact
    • Suggested fix (if any)
    • Your contact information
  3. What to expect:
    • Initial Response: Within 48 hours acknowledging receipt
    • Assessment: We’ll investigate and assess the severity within 5 business days
    • Updates: Regular updates on our progress
    • Resolution: Timeline for fix and public disclosure
    • Credit: Recognition in release notes (if desired)

Responsible Disclosure

We follow responsible disclosure practices:

  1. Private reporting - Report vulnerabilities privately first
  2. Coordinated disclosure - Work with us on timing of public disclosure
  3. Credit - We’ll credit you for the discovery (unless you prefer anonymity)
  4. No retaliation - We won’t take legal action for good-faith security research

Security Best Practices

When using meloqui in your applications, follow these security best practices:

API Key Management

Never hardcode API keys in your source code

Bad:

const client = new ChatClient({
  provider: 'openai',
  apiKey: 'sk-1234567890abcdef' // Never do this!
});

Good:

// Use environment variables
const client = new ChatClient({
  provider: 'openai',
  apiKey: process.env.OPENAI_API_KEY
});

Recommendations:

Input Validation

Always validate and sanitize user input before sending to LLMs

function sanitizeInput(userInput: string): string {
  // Remove potential injection attempts
  // Limit input length
  // Filter sensitive data
  return userInput.trim().slice(0, 1000);
}

const response = await client.chat(sanitizeInput(userInput));

Considerations:

Data Privacy

Be cautious with sensitive data

// For sensitive applications, avoid storing history
const client = new ChatClient({
  provider: 'openai',
  model: 'gpt-4'
  // No conversationId = no history stored
});

Dependencies

Keep dependencies up to date

# Check for vulnerabilities
npm audit

# Update dependencies
npm update

# Check for outdated packages
npm outdated

Monitoring:

Rate Limiting and Costs

Implement proper rate limiting to prevent abuse

const client = new ChatClient({
  provider: 'openai',
  model: 'gpt-4',
  rateLimitConfig: {
    requestsPerMinute: 60,
    tokensPerMinute: 90000
  }
});

Recommendations:

Error Handling

Don’t expose sensitive information in errors

Bad:

try {
  const response = await client.chat(message);
} catch (error) {
  // Don't expose API keys, internal details
  console.log(error); // May contain sensitive data
}

Good:

try {
  const response = await client.chat(message);
} catch (error) {
  logger.error('Chat request failed', {
    // Log sanitized error information
    provider: client.provider,
    timestamp: Date.now()
  });
  // Return generic error to user
  throw new Error('Service temporarily unavailable');
}

Security Features

Current Security Features

Planned Security Enhancements

Known Security Considerations

Third-Party Dependencies

meloqui relies on:

Actions:

Data Transmission

All data is transmitted to LLM providers

Conversation Storage

When using FileStorage or conversation history:

Compliance

Regulatory Considerations

When using meloqui, consider:

Note: meloqui is a library. Compliance is the responsibility of the application using it.

Security Checklist for Production

Before deploying meloqui in production:

Updates and Communication

How we communicate security issues:

  1. GitHub Security Advisories - For disclosed vulnerabilities
  2. Release Notes - Security fixes noted in CHANGELOG.md
  3. Email - Direct communication for critical issues (if contact provided)

Stay informed:

Contact

For security-related questions or concerns:


Last Updated: 2026-01-01