Skip to content

Security Overview

Helomatic is built with enterprise-grade security at its core, implementing industry best practices and compliance standards to protect your data and operations.

Security Architecture

graph TB
    A[Internet] --> B[Cloudflare Security Edge]
    B --> C[DDoS Protection]
    B --> D[WAF - Web Application Firewall]
    B --> E[Bot Management]

    C --> F[Load Balancer]
    D --> F
    E --> F

    F --> G[API Gateway]
    G --> H[Authentication Layer]
    G --> I[Rate Limiting]
    G --> J[Input Validation]

    H --> K[JWT Verification]
    I --> L[Progressive Penalties]
    J --> M[Zod Schema Validation]

    K --> N[Business Logic]
    L --> N
    M --> N

    N --> O[Database Layer]
    N --> P[External Services]

    O --> Q[D1 Database Encryption]
    P --> R[TLS 1.3 Connections]

    style B fill:#ff6b6b
    style G fill:#4ecdc4
    style O fill:#45b7d1
    style H fill:#96ceb4

Core Security Principles

1. Defense in Depth

Multiple layers of security controls protect against various threat vectors: - Edge Security: DDoS protection, WAF, bot mitigation - Application Security: Input validation, authentication, authorization - Data Security: Encryption at rest and in transit - Infrastructure Security: Network isolation, secure configurations

2. Zero Trust Architecture

Every request is authenticated and authorized: - No implicit trust - All requests verified - Least privilege access - Minimal required permissions - Continuous validation - Ongoing security assessment - Micro-segmentation - Isolated security boundaries

3. Compliance First

Built to meet regulatory requirements: - SOC 2 Type II - Security, availability, confidentiality - GDPR Compliance - Data privacy and protection - ISO 27001 - Information security management - OWASP Top 10 - Web application security standards

Authentication & Authorization

JWT Implementation

Helomatic uses JSON Web Tokens (JWT) with refresh token support:

sequenceDiagram
    participant Client
    participant API
    participant Auth Service
    participant Database

    Client->>API: Login Request
    API->>Auth Service: Validate Credentials
    Auth Service->>Database: User Lookup
    Database-->>Auth Service: User Data
    Auth Service->>Auth Service: Generate JWT Pair
    Auth Service-->>API: Access + Refresh Tokens
    API-->>Client: Token Response

    Note over Client: Store tokens securely

    loop API Requests
        Client->>API: Request + Access Token
        API->>API: Verify JWT Signature
        API->>API: Check Expiration
        API-->>Client: Protected Resource
    end

    Note over Client: Token expires

    Client->>API: Refresh Request
    API->>Auth Service: Validate Refresh Token
    Auth Service-->>API: New Access Token
    API-->>Client: Fresh Token

Token Security Features

Access Tokens: - Short lifespan: 1 hour expiration - Stateless verification: No database lookups required - Audience validation: Specific to API endpoints - Signature verification: HMAC-SHA256 cryptographic signing

Refresh Tokens: - Longer lifespan: 30 days expiration - Single use: Invalidated after refresh - Secure storage: HttpOnly cookies recommended - Revocation support: Blacklist capability

Multi-Factor Authentication (MFA)

Available for enhanced account protection: - TOTP (Time-based OTP): Authenticator apps - SMS codes: Mobile phone verification - Hardware tokens: FIDO2/WebAuthn support - Backup codes: Recovery access

Input Validation & Sanitization

Zod Schema Validation

All API inputs are validated using Zod schemas:

// Example: User registration validation
export const RegisterSchema = z.object({
  email: z.string()
    .email('Invalid email format')
    .max(255, 'Email too long'),
  password: z.string()
    .min(8, 'Password must be at least 8 characters')
    .max(128, 'Password too long')
    .regex(
      /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])/,
      'Password must contain uppercase, lowercase, number, and special character'
    ),
  name: z.string()
    .min(1, 'Name is required')
    .max(100, 'Name too long'),
  company: z.string()
    .min(1, 'Company is required')
    .max(100, 'Company too long'),
  acceptTerms: z.boolean()
    .refine(val => val === true, 'Must accept terms')
});

Sanitization Layers

Input Sanitization: 1. HTML/XSS Prevention: Strip malicious HTML tags and scripts 2. SQL Injection Prevention: Parameterized queries and input cleaning 3. Path Traversal Protection: Validate and normalize file paths 4. Command Injection Prevention: Sanitize system command inputs

Output Encoding: - JSON Encoding: Prevent injection in API responses - HTML Encoding: Safe rendering in web interfaces - URL Encoding: Secure parameter transmission - Header Injection Prevention: Sanitize HTTP headers

Rate Limiting & DDoS Protection

Progressive Rate Limiting

Our rate limiting system implements progressive penalties:

graph LR
    A[Request] --> B{Check Rate Limit}
    B -->|Under Limit| C[Allow Request]
    B -->|Over Limit| D[Check Violation Count]

    D -->|First Offense| E[5min Throttle]
    D -->|Second Offense| F[30min Throttle]
    D -->|Third Offense| G[2hr Block]
    D -->|Repeated Offenses| H[24hr Block]

    E --> I[Log Security Event]
    F --> I
    G --> I
    H --> I

    I --> J[Webhook Notification]

    style H fill:#ff6b6b
    style I fill:#ffa726

Rate Limit Tiers

Tier General API AI Endpoints Monitoring Burst Limit
Free 100/hour 10/hour 20/hour 10 req/min
Pro 1,000/hour 100/hour 200/hour 50 req/min
Enterprise Custom Custom Custom Custom

DDoS Protection

Cloudflare Security: - Automatic mitigation of L3/L4 attacks - Challenge-based filtering for suspicious traffic
- Geoblocking capabilities - Real-time threat intelligence

Application-level Protection: - Request fingerprinting to identify bot traffic - Behavioral analysis for anomaly detection - IP reputation scoring - Adaptive rate limiting based on threat level

Data Protection

Encryption Standards

Data at Rest: - AES-256-GCM encryption for sensitive data - Database-level encryption in Cloudflare D1 - Key rotation every 90 days - Separate encryption keys per environment

Data in Transit: - TLS 1.3 for all API communications - Certificate pinning for mobile SDKs - HSTS enforcement with long max-age - Perfect Forward Secrecy (PFS)

// Example: AES-GCM encryption implementation
class EncryptionService {
  private key: CryptoKey;

  async encrypt(data: string): Promise<string> {
    const iv = crypto.getRandomValues(new Uint8Array(12));
    const encodedData = new TextEncoder().encode(data);

    const encryptedBuffer = await crypto.subtle.encrypt(
      { name: 'AES-GCM', iv },
      this.key,
      encodedData
    );

    // Combine IV + encrypted data
    const combined = new Uint8Array(12 + encryptedBuffer.byteLength);
    combined.set(iv);
    combined.set(new Uint8Array(encryptedBuffer), 12);

    return btoa(String.fromCharCode(...combined));
  }
}

Data Classification

Public Data: - API documentation - System status information - Public metrics (aggregated)

Internal Data: - User account information - API usage statistics - System logs and metrics

Confidential Data: - Authentication credentials - Personal identifying information - Customer business data

Restricted Data: - Payment information - Security credentials - Encryption keys

Vulnerability Management

Security Testing

Automated Testing: - SAST (Static Analysis): Code vulnerability scanning - DAST (Dynamic Analysis): Runtime security testing - Dependency scanning: Third-party package vulnerabilities - Container security: Infrastructure vulnerability assessment

Manual Testing: - Penetration testing: Quarterly security assessments - Code reviews: Security-focused development practices - Architecture reviews: Security design validation - Red team exercises: Advanced threat simulation

Vulnerability Response

Response Timeline: - Critical: 24 hours - High: 72 hours
- Medium: 1 week - Low: Next release cycle

Process: 1. Detection: Automated scanning + responsible disclosure 2. Assessment: Impact analysis and severity classification 3. Remediation: Fix development and testing 4. Deployment: Emergency patches for critical issues 5. Communication: Security advisories for customers

Compliance & Auditing

SOC 2 Type II Compliance

Security Controls: - Access controls and user provisioning - System monitoring and incident response - Change management procedures - Data backup and recovery processes

Availability Controls: - Infrastructure monitoring and alerting - Capacity planning and scaling - Disaster recovery procedures - Performance monitoring and optimization

Confidentiality Controls: - Data classification and handling - Encryption key management - Access logging and monitoring - Secure development practices

GDPR Compliance

Data Subject Rights: - Right to access: Data export functionality - Right to rectification: Account update capabilities - Right to erasure: Complete data deletion - Right to portability: Structured data exports

Data Processing: - Lawful basis documented for all processing - Data minimization - Only collect necessary data - Purpose limitation - Use data only for stated purposes - Storage limitation - Automated data retention policies

Audit Logging

Security Events:

{
  "timestamp": "2025-08-22T18:30:15.123Z",
  "event_type": "authentication_failure",
  "user_id": "usr_1234567890",
  "ip_address": "192.168.1.100",
  "user_agent": "Mozilla/5.0...",
  "details": {
    "failure_reason": "invalid_password",
    "attempt_count": 3
  },
  "risk_score": 7.5,
  "actions_taken": ["account_locked", "alert_sent"]
}

Audit Trail Features: - Immutable logs: Cryptographically signed entries - Real-time alerting: Security event notifications - Log retention: 7 years for compliance - Log analytics: Machine learning anomaly detection

Incident Response

Response Team

Security Operations Center (SOC): - 24/7 monitoring of security events - Automated response for common threats - Escalation procedures for critical incidents - Communication protocols for stakeholders

Incident Classification

Severity Levels: - P0 - Critical: Active data breach or service outage - P1 - High: Significant security vulnerability - P2 - Medium: Potential security issue - P3 - Low: Minor security concern

Response Procedures

graph TD
    A[Security Alert] --> B[Initial Assessment]
    B --> C{Severity Level}

    C -->|P0 Critical| D[Immediate Response Team]
    C -->|P1 High| E[Security Team Lead]
    C -->|P2 Medium| F[Standard Investigation]
    C -->|P3 Low| G[Routine Handling]

    D --> H[Incident War Room]
    E --> I[Accelerated Response]
    F --> J[Standard Timeline]
    G --> K[Next Business Day]

    H --> L[Customer Notification]
    I --> M[Stakeholder Update]
    J --> N[Internal Communication]
    K --> O[Log and Monitor]

    L --> P[Resolution and Remediation]
    M --> P
    N --> P
    O --> P

    P --> Q[Post-Incident Review]
    Q --> R[Security Improvements]

Security Best Practices

For Developers

Authentication:

// Store tokens securely
const tokenStorage = {
  setToken(token) {
    // Use secure storage (not localStorage for sensitive data)
    sessionStorage.setItem('helomatic_token', token);
  },

  getToken() {
    return sessionStorage.getItem('helomatic_token');
  },

  clearToken() {
    sessionStorage.removeItem('helomatic_token');
  }
};

// Always use HTTPS
const apiClient = new HelomaticClient({
  apiUrl: 'https://helomatic-api-prod.ernijs-ansons.workers.dev',
  accessToken: tokenStorage.getToken()
});

Input Validation:

// Client-side validation (server-side is also enforced)
function validateEmail(email) {
  const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
  return emailRegex.test(email);
}

function validatePassword(password) {
  return password.length >= 8 && 
         /[A-Z]/.test(password) && 
         /[a-z]/.test(password) && 
         /\d/.test(password) && 
         /[@$!%*?&]/.test(password);
}

For System Administrators

Network Security: - Use VPN connections for administrative access - Implement IP allowlisting for critical operations - Enable MFA for all administrative accounts - Monitor access patterns for anomalies

API Security: - Rotate API keys regularly (monthly recommended) - Use environment-specific keys (dev/staging/prod) - Implement request signing for sensitive operations - Monitor API usage patterns for abuse

For End Users

Account Security: - Use strong, unique passwords for your account - Enable MFA for additional protection - Review login activity regularly - Report suspicious activity immediately

API Key Management: - Never commit API keys to version control - Use environment variables for key storage - Rotate keys if potentially compromised - Monitor usage for unexpected patterns


Security Contact

Report Security Issues: - 📧 Email: security@helomatic.com - 🔐 PGP Key: Available on our website - 🏆 Bug Bounty: Responsible disclosure program

Security Resources: - Security Policy - Privacy Policy - Compliance Certifications - Security Status


Last updated: August 22, 2025 | Next review: November 22, 2025