{ "title": "Waehrungskurse", "version": "0.1.5", "description": "Zentrales Modul fuer Waehrungskurse, Historie und API-Abrufe.", "enabled_by_default": true, "setup": { "fields": [ { "name": "use_separate_db", "label": "Eigene Modul-DB nutzen", "type": "checkbox", "required": false, "help": "Wenn aktiv, werden die DB-Daten unten verwendet. Sonst wird die Nexus-Base-DB genutzt." }, { "name": "db.driver", "label": "DB Driver", "type": "text", "required": false, "help": "z.B. pgsql, mysql, sqlite" }, { "name": "db.host", "label": "DB Host", "type": "text", "required": false }, { "name": "db.port", "label": "DB Port", "type": "number", "required": false }, { "name": "db.dbname", "label": "DB Name", "type": "text", "required": false }, { "name": "db.schema", "label": "DB Schema", "type": "text", "required": false }, { "name": "db.user", "label": "DB User", "type": "text", "required": false }, { "name": "db.password", "label": "DB Passwort", "type": "password", "required": false }, { "name": "provider", "label": "FX Provider", "type": "text", "required": false, "help": "Unterstuetzt legacy currencyapi.net und currencyapi.com v3." }, { "name": "api_version", "label": "FX API Version", "type": "select", "required": false, "help": "Steuert die Endpoint-Version unabhaengig von der Domain." }, { "name": "api_url", "label": "FX API URL", "type": "text", "required": false, "help": "Nur die Basis-URL eintragen, z.B. https://api.currencyapi.com oder https://currencyapi.net." }, { "name": "api_key", "label": "FX API Key", "type": "password", "required": false }, { "name": "timeout_sec", "label": "Timeout (Sek.)", "type": "number", "required": false }, { "name": "refresh_max_age_minutes", "label": "Max. Alter fuer API-Refresh (Min.)", "type": "number", "required": false, "help": "Blockiert neue API-Refresh-Aufrufe, solange der letzte gespeicherte Abruf juenger ist. Manuelle Abrufe koennen nach Hinweis trotzdem erzwungen werden; Cron ignoriert diesen Wert." }, { "name": "default_base_currency", "label": "Standard-Basiswaehrung", "type": "text", "required": false, "help": "Wird fuer taegliche Abrufe und Snapshot-Abfragen verwendet." }, { "name": "display_base_currency", "label": "Anzeige-Basiswaehrung", "type": "select", "required": false, "help": "Basis fuer die Anzeige der zuletzt gespeicherten Kurse im Modul." }, { "name": "preferred_currencies", "label": "Bevorzugte Waehrungen", "type": "multiselect", "required": false, "help": "Auswahl aus dem synchronisierten Waehrungskatalog." }, { "name": "schedule_timezone", "label": "Scheduler-Zeitzone", "type": "text", "required": false, "help": "z.B. Europe/Berlin" } ] }, "scheduler_jobs": [ { "name": "rates_refresh", "label": "Kursabruf", "callback": "scheduled_refresh", "mode": "multi", "default_enabled": true, "default_cron": "0 18 * * *", "default_timezone": "Europe/Berlin", "timezone_setting": "schedule_timezone", "lock_minutes": 120, "help": "Zeitgesteuerter Abruf und das Speichern neuer FX-Snapshots.", "builder": { "allow_manual": true, "presets": ["daily", "every_x_days", "weekly", "monthly_day", "every_x_hours"] } } ], "db_defaults": { "driver": "pgsql", "host": "localhost", "port": 5432, "dbname": "", "schema": "public", "user": "", "password": "" }, "auth": { "required": true, "users": [], "groups": [] } }