====== std.cloud — Cloudflare-Units ====== Cloudflare API v4 Bindings für Lyx: 16 Units für alle Cloudflare-Dienste. Authentifizierung über API-Token (empfohlen) oder Legacy API-Key + E-Mail. Der HTTP-Transport nutzt ''std.net.https'' mit automatischem Retry. → [[lyx_-_programmiersprache:units:cloud|std.cloud]] · [[lyx_-_programmiersprache:units|Standard Library]] ---- ===== Units im Überblick ===== ^ Unit ^ Import ^ Beschreibung ^ | ''cf/credentials'' | ''import std.cloud.cf.credentials;'' | API-Token, Legacy API-Key, Env-Variablen, Config-Datei | | ''cf/transport'' | (intern) | CFClient, CFResponse, HTTP-Helpers | | ''cf/zones'' | ''import std.cloud.cf.zones;'' | Domains verwalten: Anlegen, Pause/Unpause, Settings | | ''cf/dns'' | ''import std.cloud.cf.dns;'' | DNS-Records CRUD, Upsert-Muster | | ''cf/workers'' | ''import std.cloud.cf.workers;'' | Worker-Scripts deployen, Routes, Secrets, Crons, Tail | | ''cf/kv'' | ''import std.cloud.cf.kv;'' | Workers KV: Key-Value-Store mit TTL und Bulk-Operationen | | ''cf/r2'' | ''import std.cloud.cf.r2;'' | R2 Objekt-Speicher: Upload/Download, Multipart, Presigned URLs | | ''cf/d1'' | ''import std.cloud.cf.d1;'' | D1 SQLite-Datenbank: Query, Exec, ExecScript | | ''cf/cache'' | ''import std.cloud.cf.cache;'' | Cache-Purge, Page Rules, Cache-Rules, Transform-Rules | | ''cf/waf'' | ''import std.cloud.cf.waf;'' | Firewall-Rules, IP-Sperren, Rate Limiting | | ''cf/lb'' | ''import std.cloud.cf.lb;'' | Load Balancer: Health Checks, Pools, Load Balancer | | ''cf/pages'' | ''import std.cloud.cf.pages;'' | Cloudflare Pages: Projekte und Deployments | | ''cf/tunnel'' | ''import std.cloud.cf.tunnel;'' | Cloudflare Tunnel: erstellen, Token, Konfiguration | | ''cf/email'' | ''import std.cloud.cf.email;'' | Email Routing: Regeln, DNS-Verifikation | | ''cf/analytics'' | ''import std.cloud.cf.analytics;'' | Zone-Analytics, GraphQL, Logpush | | ''cf/core'' | (intern) | JSON-Builder, Pfad-Builder (interne Helpers) | ---- ===== std.cloud.cf.credentials ===== Drei Authentifizierungsarten — API-Token ist die empfohlene Methode: ==== Typen ==== ^ Typ ^ Felder ^ Beschreibung ^ | ''CFCredentials'' | authType, token, apiKey, email, accountId, zoneId | Zugangsdaten (alle Felder ''int64''/''pchar'') | ==== Konstanten ==== ^ Konstante ^ Bedeutung ^ | ''CF_AUTH_TOKEN'' | Bearer-Token (empfohlen) | | ''CF_AUTH_KEY'' | Legacy: API-Key + E-Mail | | ''CF_AUTH_SERVICE'' | Service-Key (Account-level) | ==== Funktionen ==== ^ Funktion ^ Beschreibung ^ | ''CFCredentialsFromToken(token, accountId: pchar): CFCredentials'' | API-Token + Account-ID | | ''CFCredentialsFromKey(apiKey, email, accountId: pchar): CFCredentials'' | Legacy API-Key | | ''CFCredentialsFromEnv(): CFCredentials'' | Aus ''CLOUDFLARE_API_TOKEN'' + ''CLOUDFLARE_ACCOUNT_ID'' | | ''CFCredentialsDefault(): CFCredentials'' | Env → Config-Datei | | ''CFConfigLoad(path: pchar): CFCredentials'' | Aus Konfigurationsdatei | | ''CFConfigSave(c: CFCredentials, path: pchar): int64'' | Credentials in Datei speichern | | ''CFCredentialsFree(c: CFCredentials)'' | Allokierte Felder freigeben | ---- ===== CFClient und CFResponse ===== ''CFClient'' wird aus ''CFCredentials'' erstellt und an alle Service-Funktionen übergeben. Cloudflare-Antworten unterscheiden sich von AWS: Die API liefert immer HTTP 200 — der Erfolg wird über das ''success''-Feld in ''CFResponse'' signalisiert. ^ Feld ^ Typ ^ Bedeutung ^ | ''success'' | ''int64'' | ''1'' = Erfolg, ''0'' = Fehler | | ''statusCode'' | ''int64'' | HTTP-Statuscode (fast immer 200) | | ''result'' | ''int64'' | Allokierter JSON-String mit dem Ergebnis | | ''resultLen'' | ''int64'' | Länge von ''result'' | | ''errors'' | ''int64'' | JSON-Array mit Fehlern (bei ''success == 0'') | | ''messages'' | ''int64'' | JSON-Array mit Hinweisen | import std.cloud.cf.credentials; import std.cloud.cf.transport; import std.cloud.cf.zones; fn main(): int64 { // Credentials aus Umgebung laden var creds: CFCredentials := CFCredentialsFromEnv(); var c: CFClient := CFClientNew(creds); // Alle Zones des Accounts var result: int64 := ZoneList(c, creds.accountId as pchar); if (result != 0) { Print(result as pchar); PrintLn(""c); free(result, StrLen(result as pchar) + 1); } CFClientFree(c); CFCredentialsFree(creds); return 0; } **Umgebungsvariablen:** ^ Variable ^ Bedeutung ^ | ''CLOUDFLARE_API_TOKEN'' | API-Token (empfohlen) | | ''CLOUDFLARE_ACCOUNT_ID'' | Account-ID | | ''CLOUDFLARE_API_KEY'' | Legacy API-Key | | ''CLOUDFLARE_API_EMAIL'' | Legacy E-Mail | ---- ===== std.cloud.cf.zones ===== Domain-Verwaltung. Eine Zone entspricht einer Domain. 29 pub Items. ^ Funktion ^ Beschreibung ^ | ''ZoneCreate(c, domain, accountId, zoneType): CFZone'' | Zone anlegen (zoneType: ''full''/''partial''/''secondary'') | | ''ZoneDelete(c, zoneId): int64'' | Zone löschen | | ''ZoneGet(c, zoneId): CFZone'' | Zone-Details | | ''ZoneGetByDomain(c, domain): CFZone'' | Zone per Domain-Name finden | | ''ZoneList(c, accountId): int64'' | Alle Zones des Accounts (JSON) | | ''ZoneListAccount(c, accountId): int64'' | Wie ''ZoneList'' | | ''ZonePause(c, zoneId): int64'' | Cloudflare-Proxy deaktivieren (DNS-Only) | | ''ZoneUnpause(c, zoneId): int64'' | Proxy wieder aktivieren | | ''ZoneActivationCheck(c, zoneId): int64'' | Nameserver-Aktivierung prüfen | | ''ZoneSettingGet(c, zoneId, setting): CFSetting'' | Einzelne Einstellung lesen | | ''ZoneSettingSet(c, zoneId, setting, value): int64'' | Einstellung setzen | | ''ZoneSSLSet / ZoneAlwaysHTTPS / ZoneMinify'' | SSL-Level, HTTPS-Zwang, Minify | | ''ZoneDevelopmentMode(c, zoneId, enable): int64'' | Development Mode an/aus | ---- ===== std.cloud.cf.dns ===== DNS-Records verwalten. 23 pub Items. ^ Funktion ^ Beschreibung ^ | ''DNSRecordCreate(c, zoneId, type, name, content, ttl, proxied): CFDNSRecord'' | Record anlegen | | ''DNSRecordUpdate(c, zoneId, recordId, type, name, content, ttl, proxied): CFDNSRecord'' | Record ersetzen | | ''DNSRecordPatch(c, zoneId, recordId, content): CFDNSRecord'' | Nur Inhalt ändern | | ''DNSRecordDelete(c, zoneId, recordId): int64'' | Record löschen | | ''DNSRecordGet(c, zoneId, recordId): CFDNSRecord'' | Einzelner Record | | ''DNSRecordList(c, zoneId): int64'' | Alle Records der Zone (JSON) | | ''DNSRecordListByType(c, zoneId, recType): int64'' | Gefiltert nach Typ (''A'', ''CNAME'', ''MX'', …) | | ''DNSRecordListByName(c, zoneId, name): int64'' | Gefiltert nach Name | | ''DNSRecordFind(c, zoneId, recType, name): CFDNSRecord'' | Ersten passenden Record liefern | | ''DNSRecordUpsert(c, zoneId, type, name, content, ttl, proxied): CFDNSRecord'' | Anlegen oder aktualisieren | import std.cloud.cf.credentials; import std.cloud.cf.transport; import std.cloud.cf.dns; fn main(): int64 { var creds: CFCredentials := CFCredentialsFromEnv(); var c: CFClient := CFClientNew(creds); // A-Record setzen (oder aktualisieren, falls schon vorhanden) var r: CFDNSRecord := DNSRecordUpsert(c, "abc123def456"c, // zoneId "A"c, // Typ "api"c, // Name → api.meine-domain.de "1.2.3.4"c, // Content 1, // TTL (1 = auto) 1 // proxied: 1 = ja (oranges Wolkensymbol) ); CFDNSRecordFree(r); CFClientFree(c); CFCredentialsFree(creds); return 0; } ---- ===== std.cloud.cf.workers ===== Cloudflare Workers: serverless JavaScript/WASM an Cloudflares Edge deployen. 27 pub Items. ^ Funktion ^ Beschreibung ^ | ''WorkerDeploy(c, accountId, scriptName, scriptContent, scriptLen): int64'' | Script als einzelne Datei deployen | | ''WorkerDeployModule(c, accountId, scriptName, esm, esmLen): int64'' | ES-Modul-Format | | ''WorkerDeployWithBindings(c, accountId, scriptName, script, scriptLen, bindings): int64'' | Mit KV/R2/D1-Bindings | | ''WorkerDeployWasm(c, accountId, scriptName, wasm, wasmLen): int64'' | WebAssembly-Binary deployen | | ''WorkerDelete(c, accountId, scriptName): int64'' | Script löschen | | ''WorkerGet(c, accountId, scriptName): CFWorkerScript'' | Script-Metadaten | | ''WorkerList(c, accountId): int64'' | Alle Scripts (JSON) | | ''WorkerDownload(c, accountId, scriptName): int64'' | Script-Code herunterladen | | ''WorkerRouteCreate(c, zoneId, pattern, scriptName): CFWorkerRoute'' | Route anlegen (z.B. ''meine-domain.de/api/*'') | | ''WorkerRouteUpdate / WorkerRouteDelete / WorkerRouteList'' | Route-Verwaltung | | ''WorkerSecretSet(c, accountId, scriptName, key, value): int64'' | Secret (Env-Variable) setzen | | ''WorkerSecretDelete / WorkerSecretList'' | Secret-Verwaltung | | ''WorkerCronCreate(c, accountId, scriptName, cron): int64'' | Cron-Trigger anlegen (z.B. ''0 * * * *'') | | ''WorkerCronList(c, accountId, scriptName): int64'' | Cron-Trigger auflisten | | ''WorkerTailStart(c, accountId, scriptName): int64'' | Live-Log-Stream starten | | ''WorkerSubdomainCreate / WorkerEnableSubdomain / WorkerDisableSubdomain'' | workers.dev-Subdomain verwalten | ---- ===== std.cloud.cf.kv ===== Workers KV: globaler Key-Value-Store für Worker-Scripts. 19 pub Items. ^ Funktion ^ Beschreibung ^ | ''KVNamespaceCreate(c, accountId, title): CFKVNamespace'' | Namespace anlegen | | ''KVNamespaceDelete / KVNamespaceRename / KVNamespaceList'' | Namespace-Verwaltung | | ''KVGet(c, accountId, nsId, key): int64'' | Wert lesen (allokierter Puffer, ''0'' wenn nicht vorhanden) | | ''KVPut(c, accountId, nsId, key, value, valueLen): int64'' | Wert schreiben | | ''KVPutWithTTL(c, accountId, nsId, key, value, valueLen, ttlSeconds): int64'' | Mit Ablaufzeit (Sekunden) | | ''KVPutWithExpiry(c, accountId, nsId, key, value, valueLen, unixTs): int64'' | Mit absolutem Ablauf-Timestamp | | ''KVPutWithMeta(c, accountId, nsId, key, value, valueLen, meta): int64'' | Mit Metadaten-JSON | | ''KVDelete(c, accountId, nsId, key): int64'' | Eintrag löschen | | ''KVExists(c, accountId, nsId, key): int64'' | Existenz prüfen (1/0) | | ''KVList(c, accountId, nsId, prefix, cursor, limit): int64'' | Keys paginiert auflisten | | ''KVListAll(c, accountId, nsId, prefix): int64'' | Alle Keys (automatisch paginiert) | | ''KVPutBulk(c, accountId, nsId, entries, count): int64'' | Mehrere Keys gleichzeitig schreiben | | ''KVDeleteBulk(c, accountId, nsId, keys, count): int64'' | Mehrere Keys gleichzeitig löschen | ---- ===== std.cloud.cf.r2 ===== Cloudflare R2: S3-kompatibler Objekt-Speicher ohne Egress-Kosten. 27 pub Items. R2 verwendet einen eigenen ''R2Conn''-Handle (nicht ''CFClient''), der über ''R2Connect'' erstellt wird. ^ Funktion ^ Beschreibung ^ | ''R2Connect(creds, accountId): R2Conn'' | R2-Verbindung aufbauen | | ''R2Disconnect(c): void'' | Verbindung schließen | | ''R2BucketCreate(creds, accountId, bucket, location): int64'' | Bucket anlegen (location: ''wnam''/''enam''/''weur''/''eeur''/''apac'') | | ''R2BucketDelete(creds, accountId, bucket): int64'' | Bucket löschen | | ''R2BucketList(creds, accountId): int64'' | Alle Buckets | | ''R2BucketExists(creds, accountId, bucket): int64'' | Bucket-Existenz prüfen | | ''R2Upload(c, bucket, key, data, dataLen): int64'' | Objekt hochladen | | ''R2Download(c, bucket, key): int64'' | Objekt herunterladen | | ''R2Delete(c, bucket, key): int64'' | Objekt löschen | | ''R2Exists(c, bucket, key): int64'' | Objekt-Existenz prüfen | | ''R2List(c, bucket, prefix): int64'' | Objekte auflisten | | ''R2Copy(c, srcBucket, srcKey, dstBucket, dstKey): int64'' | Server-seitiges Kopieren | | ''R2GetMeta(c, bucket, key): int64'' | Metadaten ohne Body (HEAD) | | ''R2MultipartStart/Upload/Complete/Abort'' | Multipart-Upload für große Dateien | | ''R2PresignedURL(c, bucket, key, method, expirySeconds): int64'' | Presigned URL (GET/PUT/DELETE) | | ''R2BucketEnablePublic(creds, accountId, bucket): int64'' | Öffentlichen Bucket-Zugriff aktivieren | | ''R2PublicURL(accountId, bucket, key): int64'' | Öffentliche URL eines Objekts berechnen | | ''R2CustomDomainAdd / R2CustomDomainList / R2CustomDomainRemove'' | Custom Domain für Bucket | | ''R2AccessKeyCreate / R2AccessKeyList / R2AccessKeyDelete'' | S3-kompatible Access Keys verwalten | ---- ===== std.cloud.cf.d1 ===== D1: SQLite-Datenbank an Cloudflares Edge (für Worker-Bindings). 24 pub Items. ^ Funktion ^ Beschreibung ^ | ''D1Create(c, accountId, name): CFD1Database'' | Datenbank anlegen | | ''D1Delete(c, accountId, dbId): int64'' | Datenbank löschen | | ''D1Get(c, accountId, dbId): CFD1Database'' | Datenbank-Details per ID | | ''D1GetByName(c, accountId, name): CFD1Database'' | Datenbank-Details per Name | | ''D1List(c, accountId): int64'' | Alle Datenbanken (JSON) | | ''D1Query(c, accountId, dbId, sql, params, paramCount): D1Result'' | SELECT mit Parametern — gibt Zeilen zurück | | ''D1Exec(c, accountId, dbId, sql): D1Result'' | INSERT/UPDATE/DELETE | | ''D1ExecScript(c, accountId, dbId, sqlScript): int64'' | Mehrere Statements aus Script | import std.cloud.cf.credentials; import std.cloud.cf.transport; import std.cloud.cf.d1; fn main(): int64 { var creds: CFCredentials := CFCredentialsFromEnv(); var c: CFClient := CFClientNew(creds); var db: CFD1Database := D1GetByName(c, creds.accountId as pchar, "meine-db"c); // Tabelle anlegen D1Exec(c, creds.accountId as pchar, db.id as pchar, "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)"c); // Datensatz einfügen D1Exec(c, creds.accountId as pchar, db.id as pchar, "INSERT INTO users (name) VALUES ('Alice')"c); // Abfrage var params: array := []; var result: D1Result := D1Query(c, creds.accountId as pchar, db.id as pchar, "SELECT * FROM users"c, 0 as int64, 0); D1ResultFree(result); CFD1DatabaseFree(db); CFClientFree(c); CFCredentialsFree(creds); return 0; } ---- ===== std.cloud.cf.cache ===== Cache-Verwaltung, Page Rules und Transform Rules. 31 pub Items. ==== Cache-Purge ==== ^ Funktion ^ Beschreibung ^ | ''CachePurgeAll(c, zoneId): int64'' | Gesamten Cache der Zone leeren | | ''CachePurgeFiles(c, zoneId, urls, count): int64'' | Bestimmte URLs invalidieren | | ''CachePurgeTags(c, zoneId, tags, count): int64'' | Nach Cache-Tags invalidieren | | ''CachePurgePrefixes(c, zoneId, prefixes, count): int64'' | Nach URL-Prefix invalidieren | | ''CachePurgeHosts(c, zoneId, hosts, count): int64'' | Alle URLs eines Hostnamens | ==== Cache-Rules und Page Rules ==== ^ Funktion ^ Beschreibung ^ | ''CacheRuleCreate(c, zoneId, description, expression, action, ttl): CFCacheRule'' | Cache-Regel anlegen | | ''CacheRuleDelete / CacheRuleList'' | Regeln verwalten | | ''PageRuleCreate(c, zoneId, url, settings, priority, status): CFPageRule'' | Page Rule anlegen | | ''PageRuleRedirect(c, zoneId, urlPattern, target, statusCode): CFPageRule'' | Weiterleitungs-Rule | | ''PageRuleForceHTTPS(c, zoneId, pattern): CFPageRule'' | HTTPS-Zwang für URL-Muster | | ''PageRuleCacheEverything(c, zoneId, pattern, ttl): CFPageRule'' | Alles cachen (inkl. HTML) | | ''PageRuleDelete / PageRuleList'' | Regeln verwalten | | ''TransformRuleCreate / TransformRuleDelete / TransformRuleList'' | Transform Rules | ==== Zone-Settings ==== Häufig verwendete Konstanten für ''ZoneSettingSet'': ^ Konstante ^ Bedeutung ^ | ''CF_PR_ALWAYS_HTTPS'' | HTTP→HTTPS-Weiterleitung | | ''CF_PR_BROWSER_CACHE_TTL'' | Browser-Cache-Dauer | | ''CF_PR_CACHE_LEVEL'' | Cache-Level (''aggressive''/''basic''/''simplified'') | | ''CF_PR_EDGE_CACHE_TTL'' | Edge-Cache-Dauer | | ''CF_PR_SSL'' | SSL-Modus (''off''/''flexible''/''full''/''strict'') | ---- ===== std.cloud.cf.waf ===== Web Application Firewall: Firewall-Rules, IP-Sperren, Rate Limiting. 32 pub Items. ^ Funktion ^ Beschreibung ^ | ''FirewallRuleCreate(c, zoneId, expression, action, priority, description): CFFirewallRule'' | WAF-Regel mit Filterausdruck | | ''FirewallRuleDelete / FirewallRuleList'' | Regeln verwalten | | ''FirewallRuleEnable / FirewallRuleDisable'' | Regel aktivieren / deaktivieren | | ''FirewallBlockIP(c, zoneId, ip, note): CFFirewallRule'' | IP-Adresse sperren | | ''FirewallBlockCountry(c, zoneId, countryCode, note): CFFirewallRule'' | Ganzes Land sperren (ISO 3166-1) | | ''FirewallAllowIP(c, zoneId, ip, note): CFFirewallRule'' | IP auf Whitelist setzen | | ''FirewallChallengePath(c, zoneId, pathPrefix, note): CFFirewallRule'' | JS-Challenge für Pfad-Prefix | | ''IPRuleCreate(c, zoneId, mode, target, value, notes): CFIPAccessRule'' | IP-Zugriffs-Regel (Zone-Level) | | ''IPRuleCreateAccount(c, mode, target, value, notes): CFIPAccessRule'' | Account-Level IP-Regel | | ''IPRuleDelete / IPRuleList / IPRuleListAccount'' | IP-Regeln verwalten | | ''RateLimitCreate(c, zoneId, threshold, period, action, url): CFRateLimit'' | Rate-Limiting anlegen | | ''RateLimitDelete / RateLimitList'' | Rate-Limits verwalten | ---- ===== std.cloud.cf.lb ===== Cloudflare Load Balancer: Health Checks, Pools, Load Balancer. 20 pub Items. ^ Schicht ^ Funktionen ^ Beschreibung ^ | Health Check | ''HealthCheckCreate(c, accountId, name, type, address, port, path, interval, retries)'' | Endpunkt-Überwachung (HTTP/HTTPS/TCP) | | Origin Pool | ''PoolCreate(c, accountId, name, origins, originCount, healthCheckId, minOrigins)'' | Gruppe von Endpunkten | | Load Balancer | ''LBCreate(c, zoneId, name, defaultPoolIds, fallbackPoolId, proxied)'' | Öffentlicher Einstiegspunkt | ^ Funktion ^ Beschreibung ^ | ''HealthCheckDelete / HealthCheckList'' | Health-Check-Verwaltung | | ''PoolDelete / PoolGet / PoolList'' | Pool-Verwaltung | | ''PoolHealthGet(c, accountId, poolId)'' | Aktuellen Health-Status eines Pools | | ''LBDelete / LBGet / LBList'' | Load-Balancer-Verwaltung | | ''LBHealthGet(c, zoneId, lbId)'' | Health-Status aller Pools des LB | ---- ===== std.cloud.cf.pages ===== Cloudflare Pages: statische Sites und Full-Stack-Apps deployen. 23 pub Items. ^ Funktion ^ Beschreibung ^ | ''PagesProjectCreate(c, accountId, name, productionBranch): CFPagesProject'' | Projekt anlegen | | ''PagesProjectDelete / PagesProjectGet / PagesProjectList / PagesProjectUpdate'' | Projekt-Verwaltung | | ''PagesDeploy(c, accountId, projectName, files, fileCount, branch): CFPagesDeployment'' | Deployment aus Dateiliste | | ''PagesDeployDir(c, accountId, projectName, localDir, branch): CFPagesDeployment'' | Deployment aus lokalem Verzeichnis | | ''PagesDeploymentGet(c, accountId, projectName, deploymentId): CFPagesDeployment'' | Deployment-Status | | ''PagesDeploymentList(c, accountId, projectName): int64'' | Alle Deployments | | ''PagesDeploymentRetry / PagesDeploymentRollback'' | Deployment neu starten / zurückrollen | | ''PagesCustomDomainAdd / PagesCustomDomainList / PagesCustomDomainDelete'' | Custom Domains | | ''PagesEnvVarSet / PagesEnvVarDelete / PagesEnvVarList'' | Umgebungsvariablen | ---- ===== std.cloud.cf.tunnel ===== Cloudflare Tunnel (ehemals Argo Tunnel): Server hinter NAT/Firewall öffentlich erreichbar machen ohne offene Ports. 22 pub Items. ^ Funktion ^ Beschreibung ^ | ''TunnelCreate(c, accountId, name, secret): CFTunnel'' | Tunnel anlegen (secret = 32 Byte Hex) | | ''TunnelDelete(c, accountId, tunnelId): int64'' | Tunnel löschen | | ''TunnelGet / TunnelGetByName / TunnelList'' | Tunnel-Verwaltung | | ''TunnelCleanup(c, accountId, tunnelId): int64'' | Veraltete Verbindungen bereinigen | | ''TunnelToken(c, accountId, tunnelId): int64'' | Connector-Token abrufen (für cloudflared) | | ''TunnelTokenSave(c, accountId, tunnelId, path): int64'' | Token in Datei speichern | | ''TunnelConfigGet(c, accountId, tunnelId): int64'' | Ingress-Regeln abrufen (JSON) | | ''TunnelConfigSet(c, accountId, tunnelId, config): int64'' | Ingress-Regeln setzen | | ''TunnelIngressAdd / TunnelIngressDelete / TunnelIngressList'' | Einzel-Ingress-Einträge verwalten | ---- ===== std.cloud.cf.email ===== Email Routing: eingehende E-Mails an Adressen oder Worker weiterleiten. 19 pub Items. ^ Funktion ^ Beschreibung ^ | ''EmailRoutingGet(c, zoneId): CFEmailSettings'' | Aktuellen Status abrufen | | ''EmailRoutingEnable / EmailRoutingDisable'' | Email Routing an/aus | | ''EmailRoutingDNSGet(c, zoneId): int64'' | Erforderliche DNS-Records (MX, SPF) | | ''EmailRoutingDNSVerify(c, zoneId): int64'' | DNS-Konfiguration prüfen | | ''EmailRuleCreate(c, zoneId, name, priority, matchers, actions): CFEmailRule'' | Weiterleitungsregel anlegen | | ''EmailRuleCreateWorker(c, zoneId, name, priority, matcher, workerName): CFEmailRule'' | E-Mail an Worker weiterleiten | | ''EmailRuleDelete / EmailRuleGet / EmailRuleList'' | Regeln verwalten | | ''EmailRuleEnable / EmailRuleDisable'' | Regel aktivieren / deaktivieren | | ''EmailCatchAllGet / EmailCatchAllSet'' | Catch-All-Adresse | ---- ===== std.cloud.cf.analytics ===== Zone-Analytics, GraphQL-API und Logpush. 14 pub Items. ^ Funktion ^ Beschreibung ^ | ''AnalyticsDashboard(c, zoneId, since, until): int64'' | Gesamt-Analytics einer Zone (JSON) | | ''AnalyticsTimeseries(c, zoneId, since, until, metrics): int64'' | Zeitreihen-Daten | | ''AnalyticsGraphQL(c, query, variables): int64'' | Freie GraphQL-Abfrage gegen ''api.cloudflare.com/client/v4/graphql'' | | ''AnalyticsTop10IPs(c, zoneId, since): int64'' | Top-10 angreifende IPs | | ''AnalyticsTop10URLs(c, zoneId, since): int64'' | Top-10 aufgerufene URLs | | ''AnalyticsFirewallEvents(c, zoneId, since, limit): int64'' | WAF-Ereignisse | | ''AnalyticsWorkerInvocations(c, accountId, scriptName, since, until): int64'' | Worker-Aufrufstatistiken | | ''WebAnalyticsSiteCreate(c, accountId, zoneTag): int64'' | Web Analytics aktivieren | | ''WebAnalyticsSiteList(c, accountId): int64'' | Alle Web-Analytics-Sites | | ''LogpushJobCreate(c, zoneId, accountId, destination, dataset, fields): int64'' | Log-Export anlegen | | ''LogpushJobUpdate / LogpushJobDelete'' | Job-Verwaltung | Letzte Aktualisierung: 2026-06-12