• v0.1.2 9cd8f4bce0

    v0.1.2 Stable

    michael released this 2025-09-10 14:28:28 +02:00 | 8 commits to main since this release

    Furt API Gateway v0.1.2

    Production-Ready Multi-Tenant API Gateway in Pure Lua

    Furt v0.1.2 ist die erste produktionsreife Version des minimalistischen API-Gateways für digitale Souveränität. Der gesamte Code umfasst unter 1000 Zeilen Lua und ist damit vollständig nachvollziehbar und kontrollierbar.

    🎯 Key Features

    Multi-Tenant Architecture

    • Ein Gateway, viele Websites: Jeder API-Key erhält isolierte Konfiguration
    • Tenant-spezifische Mail-Konfiguration: Eigene SMTP-Server und Empfänger pro Client
    • Granulare Berechtigungen: API-Key-basierte Authentifizierung mit IP-Beschränkungen

    Mail Service Integration

    • Formular-zu-E-Mail-Weiterleitung: Vollständige Kontaktformular-Integration
    • Input-Validation: Schutz vor Spam und ungültigen Daten
    • Subject-Präfixe: Tenant-spezifische E-Mail-Kennzeichnung
    • Request-Tracking: Eindeutige Request-IDs für Debugging

    Production Features

    • Rate Limiting: Konfigurierbare Limits pro API-Key (Default: 60 RPM)
    • CORS Support: Nahtlose Frontend-Integration
    • Health Monitoring: /health Endpoint mit merkwerk-Integration
    • Structured Error Codes: Programmatische Fehlerbehandlung

    Distribution Support

    • Multi-Platform: OpenBSD, Debian, Arch Linux
    • Modulares Installationssystem: 6-Phasen helper scripts
    • Service Integration: systemd (Linux) und rc.d (OpenBSD)
    • Reverse Proxy Ready: Apache, nginx, OpenBSD httpd, relayd

    📦 Installation

    Package Installation (Empfohlen)

    curl -OJ https://smida.dragons-at-work.de/api/packages/DAW/generic/furt-api-gateway/0.1.2/furt-api-gateway-v0.1.2.tar.gz
    tar xzf furt-api-gateway-v0.1.2.tar.gz
    cd furt-api-gateway-v0.1.2
    sudo ./install.sh
    

    Git Installation

    git clone https://smida.dragons-at-work.de/DAW/furt.git
    cd furt
    sudo ./install.sh
    

    Upgrade von früheren Versionen

    sudo ./install.sh --upgrade
    

    🔧 Quick Configuration

    Minimal Setup

    # Config-Pfad (abhängig vom OS)
    # OpenBSD: /usr/local/etc/furt/furt.conf
    # Linux: /etc/furt/furt.conf
    
    # API-Key erstellen
    api_key = "your-website-key"
    key_name = "your-website"
    permissions = "mail:send"
    
    # SMTP-Konfiguration
    smtp_server = "mail.example.com"
    smtp_port = 587
    smtp_username = "noreply@example.com"
    smtp_password = "your-password"
    to_address = "contact@example.com"
    from_address = "noreply@example.com"
    

    Service starten

    # OpenBSD
    doas rcctl start furt
    
    # Linux
    sudo systemctl start furt
    
    # Health Check
    curl http://localhost:7811/health
    

    🚀 API Usage

    Mail senden

    curl -X POST https://api.example.com/v1/mail/send \
      -H "Content-Type: application/json" \
      -H "X-API-Key: your-website-key" \
      -d '{
        "name": "John Doe",
        "email": "john@example.com",
        "subject": "Contact Request",
        "message": "Hello, I would like to get in touch."
      }'
    

    Hugo-Integration

    {{< furt-contact-form 
        api-endpoint="https://api.example.com/v1/mail/send"
        api-key="your-website-key"
        success-url="/contact/thanks/"
    >}}
    

    📋 Available Endpoints

    Endpoint Method Auth Description
    /health GET None System health check
    /v1/mail/send POST Required Mail service
    /auth/status GET Required Auth verification

    📚 Documentation

    Vollständige API-Dokumentation verfügbar im Wiki:

    🔒 Security Features

    • API-Key Authentication: Granulare Berechtigungen pro Client
    • IP Allowlisting: Zusätzliche Sicherheit durch IP-Beschränkungen
    • Input Validation: Schutz vor Injection-Attacks und Spam
    • Rate Limiting: Schutz vor Missbrauch und DoS-Attacks
    • Isolation: Vollständige Tenant-Trennung in Multi-Client-Setups

    🛠️ Technical Details

    • Language: Pure Lua 5.1 (unter 1000 Zeilen Code)
    • Dependencies: Minimale externe Abhängigkeiten
    • Memory Usage: Unter 10MB Speicherverbrauch
    • Performance: Bis 1000+ Requests/Sekunde bei geringer CPU-Last
    • Monitoring: merkwerk-Integration für präzises Version-Tracking

    🔄 Migration & Compatibility

    • Backward Compatible: Vollständig kompatibel mit bestehenden Konfigurationen
    • Upgrade Path: Nahtlose Updates von Development-Versionen
    • Config Migration: Automatische Konfigrations-Validierung und -Migration

    🐛 Known Limitations

    • Service Discovery: Aktuell nur integrierte Services (Service-Discovery für v0.2.x geplant)
    • Configuration API: Tenant-Konfiguration nur via Config-Datei (API geplant)
    • WebSocket Support: Nicht implementiert (auf Anfrage möglich)

    🗺️ Roadmap

    • v0.2.x: Service-Discovery für eigenständige Services (sagjan, lengan, etc.)
    • v0.3.x: Configuration API für dynamische Tenant-Verwaltung
    • v1.0.x: Federation zwischen Gateway-Instanzen

    📞 Support

    🏆 Production Ready

    Furt v0.1.2 läuft bereits produktiv für die Dragons@Work Website und verarbeitet täglich Kontaktformular-Anfragen. Die Architektur ist bewährt, stabil und bereit für den Einsatz in kritischen Umgebungen.


    Dragons@Work Digital Sovereignty Project
    Building truly independent, controllable technology