[{"data":1,"prerenderedAt":1723},["ShallowReactive",2],{"docs-navigation":3,"doc-\u002Fapi\u002Flaravel":463},[4,22,104,157,194,211,224,265,306,339,368,384,409,426,446],{"title":5,"path":6,"stem":7,"children":8,"page":21},"Erste Schritte","\u002Fgetting-started","01.getting-started",[9,13,17],{"title":10,"path":11,"stem":12},"Was ist LIVCK Cloud?","\u002Fgetting-started\u002Fwhat-is-livck","01.getting-started\u002F01.what-is-livck",{"title":14,"path":15,"stem":16},"Schnellstart","\u002Fgetting-started\u002Fquickstart","01.getting-started\u002F02.quickstart",{"title":18,"path":19,"stem":20},"Das Dashboard","\u002Fgetting-started\u002Fdashboard","01.getting-started\u002F03.dashboard",false,{"title":23,"path":24,"stem":25,"children":26,"page":21},"Monitoring","\u002Fmonitoring","02.monitoring",[27,31,64,68,72,76,80,84,88,92,96,100],{"title":28,"path":29,"stem":30},"Services verwalten","\u002Fmonitoring\u002Fservices","02.monitoring\u002F01.services",{"title":32,"path":33,"stem":34,"children":35,"page":21},"Check-Typen","\u002Fmonitoring\u002Fchecks","02.monitoring\u002F02.checks",[36,40,44,48,52,56,60],{"title":37,"path":38,"stem":39},"HTTP\u002FHTTPS-Checks","\u002Fmonitoring\u002Fchecks\u002Fhttp","02.monitoring\u002F02.checks\u002F01.http",{"title":41,"path":42,"stem":43},"TCP-Port-Checks","\u002Fmonitoring\u002Fchecks\u002Ftcp","02.monitoring\u002F02.checks\u002F02.tcp",{"title":45,"path":46,"stem":47},"DNS-Checks","\u002Fmonitoring\u002Fchecks\u002Fdns","02.monitoring\u002F02.checks\u002F03.dns",{"title":49,"path":50,"stem":51},"Ping-Checks (ICMP)","\u002Fmonitoring\u002Fchecks\u002Ficmp","02.monitoring\u002F02.checks\u002F04.icmp",{"title":53,"path":54,"stem":55},"SSL-Zertifikat-Checks","\u002Fmonitoring\u002Fchecks\u002Fssl","02.monitoring\u002F02.checks\u002F05.ssl",{"title":57,"path":58,"stem":59},"Heartbeat-Checks (Push-Monitoring)","\u002Fmonitoring\u002Fchecks\u002Fheartbeat","02.monitoring\u002F02.checks\u002F06.heartbeat",{"title":61,"path":62,"stem":63},"Manuelle Services","\u002Fmonitoring\u002Fchecks\u002Fmanual","02.monitoring\u002F02.checks\u002F07.manual",{"title":65,"path":66,"stem":67},"Check-Einstellungen","\u002Fmonitoring\u002Fcheck-settings","02.monitoring\u002F03.check-settings",{"title":69,"path":70,"stem":71},"Bedingungen","\u002Fmonitoring\u002Fconditions","02.monitoring\u002F04.conditions",{"title":73,"path":74,"stem":75},"Monitoring-Standorte","\u002Fmonitoring\u002Flocations","02.monitoring\u002F05.locations",{"title":77,"path":78,"stem":79},"Service-Detailseite","\u002Fmonitoring\u002Fservice-detail","02.monitoring\u002F06.service-detail",{"title":81,"path":82,"stem":83},"Artifacts","\u002Fmonitoring\u002Fartifacts","02.monitoring\u002F07.artifacts",{"title":85,"path":86,"stem":87},"Status überschreiben","\u002Fmonitoring\u002Fstatus-override","02.monitoring\u002F08.status-override",{"title":89,"path":90,"stem":91},"Eigene Zertifikate (mTLS & private CAs)","\u002Fmonitoring\u002Fcertificates","02.monitoring\u002F09.certificates",{"title":93,"path":94,"stem":95},"Tags","\u002Fmonitoring\u002Ftags","02.monitoring\u002F10.tags",{"title":97,"path":98,"stem":99},"Sync-Quellen","\u002Fmonitoring\u002Fsync-sources","02.monitoring\u002F11.sync-sources",{"title":101,"path":102,"stem":103},"CDN & WAF-Integration","\u002Fmonitoring\u002Fcdn-waf-integration","02.monitoring\u002F12.cdn-waf-integration",{"title":105,"path":106,"stem":107,"children":108,"page":21},"Server-Monitoring","\u002Fserver-monitoring","03.server-monitoring",[109,113,117,121,125,129,133,137,141,145,149,153],{"title":110,"path":111,"stem":112},"Überblick","\u002Fserver-monitoring\u002Foverview","03.server-monitoring\u002F01.overview",{"title":114,"path":115,"stem":116},"Agent installieren","\u002Fserver-monitoring\u002Finstallation","03.server-monitoring\u002F02.installation",{"title":118,"path":119,"stem":120},"Sicherheit & Transparenz","\u002Fserver-monitoring\u002Fsecurity","03.server-monitoring\u002F03.security",{"title":122,"path":123,"stem":124},"Was gemessen wird","\u002Fserver-monitoring\u002Fmetrics","03.server-monitoring\u002F04.metrics",{"title":126,"path":127,"stem":128},"Serverliste & Detailansicht","\u002Fserver-monitoring\u002Fservers","03.server-monitoring\u002F05.servers",{"title":130,"path":131,"stem":132},"Alarm-Regeln","\u002Fserver-monitoring\u002Falert-rules","03.server-monitoring\u002F06.alert-rules",{"title":134,"path":135,"stem":136},"Ereignisse & Benachrichtigungen","\u002Fserver-monitoring\u002Fevents","03.server-monitoring\u002F07.events",{"title":138,"path":139,"stem":140},"Erreichbarkeits-Prüfungen","\u002Fserver-monitoring\u002Freachability","03.server-monitoring\u002F08.reachability",{"title":142,"path":143,"stem":144},"Agent-Updates","\u002Fserver-monitoring\u002Fupdates","03.server-monitoring\u002F09.updates",{"title":146,"path":147,"stem":148},"Auf der Statuspage zeigen","\u002Fserver-monitoring\u002Fstatuspage","03.server-monitoring\u002F10.statuspage",{"title":150,"path":151,"stem":152},"Grenzen & Pläne","\u002Fserver-monitoring\u002Flimits","03.server-monitoring\u002F11.limits",{"title":154,"path":155,"stem":156},"Fehlerbehebung","\u002Fserver-monitoring\u002Ftroubleshooting","03.server-monitoring\u002F12.troubleshooting",{"title":158,"path":159,"stem":160,"children":161,"page":21},"Incidents","\u002Fincidents","04.incidents",[162,166,170,174,178,182,186,190],{"title":163,"path":164,"stem":165},"Incidents verstehen","\u002Fincidents\u002Foverview","04.incidents\u002F01.overview",{"title":167,"path":168,"stem":169},"Incident erstellen","\u002Fincidents\u002Fcreate-incident","04.incidents\u002F02.create-incident",{"title":171,"path":172,"stem":173},"Incident verwalten","\u002Fincidents\u002Fmanage-incident","04.incidents\u002F03.manage-incident",{"title":175,"path":176,"stem":177},"Automatische Erkennung","\u002Fincidents\u002Fauto-detection","04.incidents\u002F04.auto-detection",{"title":179,"path":180,"stem":181},"Interne Kommentare","\u002Fincidents\u002Fincident-comments","04.incidents\u002F05.incident-comments",{"title":183,"path":184,"stem":185},"Postmortems","\u002Fincidents\u002Fpostmortems","04.incidents\u002F06.postmortems",{"title":187,"path":188,"stem":189},"Incident-Richtlinien","\u002Fincidents\u002Fincident-policies","04.incidents\u002F07.incident-policies",{"title":191,"path":192,"stem":193},"Incident-Vorlagen","\u002Fincidents\u002Fincident-templates","04.incidents\u002F08.incident-templates",{"title":195,"path":196,"stem":197,"children":198,"page":21},"Eskalation","\u002Fescalation","05.escalation",[199,203,207],{"title":200,"path":201,"stem":202},"Eskalationsrichtlinien","\u002Fescalation\u002Fpolicies","05.escalation\u002F01.policies",{"title":204,"path":205,"stem":206},"Eskalation während eines Incidents","\u002Fescalation\u002Fduring-incident","05.escalation\u002F02.during-incident",{"title":208,"path":209,"stem":210},"Betriebszeiten (On-Call)","\u002Fescalation\u002Foperating-schedules","05.escalation\u002F03.operating-schedules",{"title":212,"path":213,"stem":214,"children":215,"page":21},"Wartungen","\u002Fmaintenance","06.maintenance",[216,220],{"title":217,"path":218,"stem":219},"Wartungen planen","\u002Fmaintenance\u002Foverview","06.maintenance\u002F01.overview",{"title":221,"path":222,"stem":223},"Wartungs-Benachrichtigungen","\u002Fmaintenance\u002Fnotifications","06.maintenance\u002F02.notifications",{"title":225,"path":226,"stem":227,"children":228,"page":21},"Statuspages","\u002Fstatuspages","07.statuspages",[229,233,237,241,245,249,253,257,261],{"title":230,"path":231,"stem":232},"Statuspages verstehen","\u002Fstatuspages\u002Foverview","07.statuspages\u002F01.overview",{"title":234,"path":235,"stem":236},"Statuspage erstellen","\u002Fstatuspages\u002Fcreate-statuspage","07.statuspages\u002F02.create-statuspage",{"title":238,"path":239,"stem":240},"Zugriffskontrolle","\u002Fstatuspages\u002Faccess-control","07.statuspages\u002F03.access-control",{"title":242,"path":243,"stem":244},"Komponenten verwalten","\u002Fstatuspages\u002Fcomponents","07.statuspages\u002F04.components",{"title":246,"path":247,"stem":248},"Abonnenten (Subscriber)","\u002Fstatuspages\u002Fsubscribers","07.statuspages\u002F05.subscribers",{"title":250,"path":251,"stem":252},"Custom Domains","\u002Fstatuspages\u002Fcustom-domains","07.statuspages\u002F06.custom-domains",{"title":254,"path":255,"stem":256},"Öffentliche Ansicht","\u002Fstatuspages\u002Fpublic-view","07.statuspages\u002F07.public-view",{"title":258,"path":259,"stem":260},"Layout-Builder","\u002Fstatuspages\u002Flayout-builder","07.statuspages\u002F08.layout-builder",{"title":262,"path":263,"stem":264},"Metriken","\u002Fstatuspages\u002Fmetrics","07.statuspages\u002F09.metrics",{"title":266,"path":267,"stem":268,"children":269,"page":21},"Team & Organisation","\u002Fteam","08.team",[270,274,278,282,286,290,294,298,302],{"title":271,"path":272,"stem":273},"Organisationen","\u002Fteam\u002Forganizations","08.team\u002F01.organizations",{"title":275,"path":276,"stem":277},"Mitglieder verwalten","\u002Fteam\u002Fmembers","08.team\u002F02.members",{"title":279,"path":280,"stem":281},"Rollen & Berechtigungen","\u002Fteam\u002Froles","08.team\u002F03.roles",{"title":283,"path":284,"stem":285},"Teams","\u002Fteam\u002Fteams","08.team\u002F04.teams",{"title":287,"path":288,"stem":289},"Zugriffsbereiche","\u002Fteam\u002Faccess-areas","08.team\u002F05.access-areas",{"title":291,"path":292,"stem":293},"Einladungen","\u002Fteam\u002Finvitations","08.team\u002F06.invitations",{"title":295,"path":296,"stem":297},"Enterprise SSO (Single Sign-On)","\u002Fteam\u002Fsso","08.team\u002F07.sso",{"title":299,"path":300,"stem":301},"Entra ID (Azure AD) einrichten","\u002Fteam\u002Fsso-entra","08.team\u002F08.sso-entra",{"title":303,"path":304,"stem":305},"Keycloak einrichten","\u002Fteam\u002Fsso-keycloak","08.team\u002F09.sso-keycloak",{"title":307,"path":308,"stem":309,"children":310,"page":21},"Abrechnung","\u002Fbilling","09.billing",[311,315,319,323,327,331,335],{"title":312,"path":313,"stem":314},"Pläne & Preise","\u002Fbilling\u002Fplans","09.billing\u002F01.plans",{"title":316,"path":317,"stem":318},"Plan wechseln","\u002Fbilling\u002Fupgrade-downgrade","09.billing\u002F02.upgrade-downgrade",{"title":320,"path":321,"stem":322},"Zahlungsmethoden","\u002Fbilling\u002Fpayment","09.billing\u002F03.payment",{"title":324,"path":325,"stem":326},"Rechnungen","\u002Fbilling\u002Finvoices","09.billing\u002F04.invoices",{"title":328,"path":329,"stem":330},"SMS- & Voice-Guthaben","\u002Fbilling\u002Fsms-credits","09.billing\u002F05.sms-credits",{"title":332,"path":333,"stem":334},"Plan-Limits","\u002Fbilling\u002Flimits","09.billing\u002F06.limits",{"title":336,"path":337,"stem":338},"Add-Ons","\u002Fbilling\u002Fadd-ons","09.billing\u002F07.add-ons",{"title":340,"path":341,"stem":342,"children":343,"page":21},"Account & Sicherheit","\u002Faccount","10.account",[344,348,352,356,360,364],{"title":345,"path":346,"stem":347},"Profil bearbeiten","\u002Faccount\u002Fprofile","10.account\u002F01.profile",{"title":349,"path":350,"stem":351},"Passwort ändern","\u002Faccount\u002Fpassword","10.account\u002F02.password",{"title":353,"path":354,"stem":355},"Anmelden mit Google, GitHub & Discord","\u002Faccount\u002Fsocial-login","10.account\u002F03.social-login",{"title":357,"path":358,"stem":359},"Zwei-Faktor-Authentifizierung","\u002Faccount\u002Ftwo-factor","10.account\u002F04.two-factor",{"title":361,"path":362,"stem":363},"Account löschen","\u002Faccount\u002Fdelete-account","10.account\u002F05.delete-account",{"title":365,"path":366,"stem":367},"Erscheinungsbild","\u002Faccount\u002Fappearance","10.account\u002F06.appearance",{"title":369,"path":370,"stem":371,"children":372,"page":21},"Benachrichtigungen","\u002Fnotifications","11.notifications",[373,376,380],{"title":369,"path":374,"stem":375},"\u002Fnotifications\u002Foverview","11.notifications\u002F01.overview",{"title":377,"path":378,"stem":379},"Benachrichtigungskanäle","\u002Fnotifications\u002Fchannels","11.notifications\u002F02.channels",{"title":381,"path":382,"stem":383},"Persönliche Benachrichtigungs-Einstellungen","\u002Fnotifications\u002Fpreferences","11.notifications\u002F03.preferences",{"title":385,"path":386,"stem":387,"children":388,"page":21},"API","\u002Fapi","12.api",[389,393,397,401,405],{"title":390,"path":391,"stem":392},"API-Übersicht","\u002Fapi\u002Foverview","12.api\u002F01.overview",{"title":394,"path":395,"stem":396},"API-Tokens","\u002Fapi\u002Ftokens","12.api\u002F02.tokens",{"title":398,"path":399,"stem":400},"API-Endpunkte","\u002Fapi\u002Fendpoints","12.api\u002F03.endpoints",{"title":402,"path":403,"stem":404},"PHP-SDK","\u002Fapi\u002Fphp","12.api\u002F04.php",{"title":406,"path":407,"stem":408},"Laravel","\u002Fapi\u002Flaravel","12.api\u002F05.laravel",{"title":410,"path":411,"stem":412,"children":413,"page":21},"SLA","\u002Fsla","13.sla",[414,418,422],{"title":415,"path":416,"stem":417},"SLA-Monitoring","\u002Fsla\u002Foverview","13.sla\u002F01.overview",{"title":419,"path":420,"stem":421},"SLA-Ziele","\u002Fsla\u002Fobjectives","13.sla\u002F02.objectives",{"title":423,"path":424,"stem":425},"SLA-Reports","\u002Fsla\u002Freports","13.sla\u002F03.reports",{"title":427,"path":428,"stem":429,"children":430,"page":21},"FAQ","\u002Ffaq","14.faq",[431,435,439,443],{"title":432,"path":433,"stem":434},"Allgemeine Fragen","\u002Ffaq\u002Fgeneral","14.faq\u002F01.general",{"title":436,"path":437,"stem":438},"Häufige Fragen zum Monitoring","\u002Ffaq\u002Fmonitoring-faq","14.faq\u002F02.monitoring-faq",{"title":440,"path":441,"stem":442},"Häufige Fragen zur Abrechnung","\u002Ffaq\u002Fbilling-faq","14.faq\u002F03.billing-faq",{"title":154,"path":444,"stem":445},"\u002Ffaq\u002Ftroubleshooting","14.faq\u002F04.troubleshooting",{"title":447,"path":448,"stem":449,"children":450,"page":21},"Roadmap","\u002Froadmap","15.roadmap",[451,455,459],{"title":452,"path":453,"stem":454},"Roadmap lesen","\u002Froadmap\u002Freading-the-roadmap","15.roadmap\u002F01.reading-the-roadmap",{"title":456,"path":457,"stem":458},"Wunsch einreichen","\u002Froadmap\u002Fsubmitting-ideas","15.roadmap\u002F02.submitting-ideas",{"title":460,"path":461,"stem":462},"Warum keine Termine","\u002Froadmap\u002Fwhy-no-dates","15.roadmap\u002F03.why-no-dates",{"id":464,"title":406,"body":465,"description":1717,"extension":1718,"meta":1719,"navigation":1720,"path":407,"seo":1721,"stem":408,"__hash__":1722},"docs\u002F12.api\u002F05.laravel.md",{"type":466,"value":467,"toc":1708},"minimark",[468,477,489,494,519,534,555,562,582,592,596,599,752,763,936,939,943,946,1051,1086,1089,1093,1100,1181,1187,1240,1247,1254,1338,1342,1347,1549,1578,1590,1594,1608,1619,1669,1673,1704],[469,470,472,473],"h1",{"id":471},"laravel-paket","Laravel-Paket ",[474,475],"plan-badge",{"plan":476},"team",[478,479,480,484,485,488],"p",{},[481,482,483],"code",{},"livck\u002Fcloud-laravel"," bindet das ",[486,487,402],"a",{"href":403}," in Laravel ein. Dazu kommen Konfiguration, eine Facade, Dependency Injection, mehrere Verbindungen, ein Fake für Tests und ein Artisan-Befehl, der die Verbindung prüft. Das Paket läuft ab PHP 8.3 mit Laravel 12 oder 13 und steht unter der MIT-Lizenz.",[490,491,493],"h2",{"id":492},"installation","Installation",[495,496,501],"pre",{"className":497,"code":498,"language":499,"meta":500,"style":500},"language-bash shiki shiki-themes github-light github-dark","composer require livck\u002Fcloud-laravel\n","bash","",[481,502,503],{"__ignoreMap":500},[504,505,508,512,516],"span",{"class":506,"line":507},"line",1,[504,509,511],{"class":510},"sScJk","composer",[504,513,515],{"class":514},"sZZnC"," require",[504,517,518],{"class":514}," livck\u002Fcloud-laravel\n",[478,520,521,522,525,526,529,530,533],{},"Laravel findet den Service-Provider und die Facade ",[481,523,524],{},"LivckCloud"," von selbst. Trag deinen ",[486,527,528],{"href":395},"API-Token"," in die ",[481,531,532],{},".env"," ein:",[495,535,539],{"className":536,"code":537,"language":538,"meta":500,"style":500},"language-dotenv shiki shiki-themes github-light github-dark","LIVCK_CLOUD_TOKEN=lvk_dein-api-token\n","dotenv",[481,540,541],{"__ignoreMap":500},[504,542,543,547,551],{"class":506,"line":507},[504,544,546],{"class":545},"s4XuR","LIVCK_CLOUD_TOKEN",[504,548,550],{"class":549},"szBVR","=",[504,552,554],{"class":553},"sVt8B","lvk_dein-api-token\n",[478,556,557,558,561],{},"Mehr als den Token musst du nicht einstellen. Willst du etwas ändern, veröffentliche die Konfiguration nach ",[481,559,560],{},"config\u002Flivck-cloud.php",":",[495,563,565],{"className":497,"code":564,"language":499,"meta":500,"style":500},"php artisan vendor:publish --tag=livck-cloud-config\n",[481,566,567],{"__ignoreMap":500},[504,568,569,572,575,578],{"class":506,"line":507},[504,570,571],{"class":510},"php",[504,573,574],{"class":514}," artisan",[504,576,577],{"class":514}," vendor:publish",[504,579,581],{"class":580},"sj4cs"," --tag=livck-cloud-config\n",[478,583,584,585,587,588,591],{},"Jeder Schlüssel der Standardverbindung lässt sich auch in der ",[481,586,532],{}," setzen, zum Beispiel ",[481,589,590],{},"LIVCK_CLOUD_LOCALE=de"," für deutsche Inhalte.",[490,593,595],{"id":594},"facade-und-dependency-injection","Facade und Dependency Injection",[478,597,598],{},"Die Facade spricht für die Standardverbindung:",[495,600,603],{"className":601,"code":602,"language":571,"meta":500,"style":500},"language-php shiki shiki-themes github-light github-dark","use LIVCK\\Cloud\\Builders\\ServiceBuilder;\nuse LIVCK\\Cloud\\Laravel\\Facades\\LivckCloud;\n\n$tag = LivckCloud::tags()->ensure('kunde', '4711')->tag;\n\nLivckCloud::services()->create(\n    ServiceBuilder::http('Onlineshop', 'https:\u002F\u002Fshop.example.com')->interval(60)->tags($tag),\n);\n",[481,604,605,616,626,633,679,684,704,746],{"__ignoreMap":500},[504,606,607,610,613],{"class":506,"line":507},[504,608,609],{"class":549},"use",[504,611,612],{"class":580}," LIVCK\\Cloud\\Builders\\ServiceBuilder",[504,614,615],{"class":553},";\n",[504,617,619,621,624],{"class":506,"line":618},2,[504,620,609],{"class":549},[504,622,623],{"class":580}," LIVCK\\Cloud\\Laravel\\Facades\\LivckCloud",[504,625,615],{"class":553},[504,627,629],{"class":506,"line":628},3,[504,630,632],{"emptyLinePlaceholder":631},true,"\n",[504,634,636,639,641,644,647,650,653,656,659,662,665,668,671,674,676],{"class":506,"line":635},4,[504,637,638],{"class":553},"$tag ",[504,640,550],{"class":549},[504,642,643],{"class":580}," LivckCloud",[504,645,646],{"class":549},"::",[504,648,649],{"class":510},"tags",[504,651,652],{"class":553},"()",[504,654,655],{"class":549},"->",[504,657,658],{"class":510},"ensure",[504,660,661],{"class":553},"(",[504,663,664],{"class":514},"'kunde'",[504,666,667],{"class":553},", ",[504,669,670],{"class":514},"'4711'",[504,672,673],{"class":553},")",[504,675,655],{"class":549},[504,677,678],{"class":553},"tag;\n",[504,680,682],{"class":506,"line":681},5,[504,683,632],{"emptyLinePlaceholder":631},[504,685,687,689,691,694,696,698,701],{"class":506,"line":686},6,[504,688,524],{"class":580},[504,690,646],{"class":549},[504,692,693],{"class":510},"services",[504,695,652],{"class":553},[504,697,655],{"class":549},[504,699,700],{"class":510},"create",[504,702,703],{"class":553},"(\n",[504,705,707,710,712,715,717,720,722,725,727,729,732,734,737,739,741,743],{"class":506,"line":706},7,[504,708,709],{"class":580},"    ServiceBuilder",[504,711,646],{"class":549},[504,713,714],{"class":510},"http",[504,716,661],{"class":553},[504,718,719],{"class":514},"'Onlineshop'",[504,721,667],{"class":553},[504,723,724],{"class":514},"'https:\u002F\u002Fshop.example.com'",[504,726,673],{"class":553},[504,728,655],{"class":549},[504,730,731],{"class":510},"interval",[504,733,661],{"class":553},[504,735,736],{"class":580},"60",[504,738,673],{"class":553},[504,740,655],{"class":549},[504,742,649],{"class":510},[504,744,745],{"class":553},"($tag),\n",[504,747,749],{"class":506,"line":748},8,[504,750,751],{"class":553},");\n",[478,753,754,755,758,759,762],{},"Alternativ lässt du dir ",[481,756,757],{},"CloudClientInterface"," injizieren, etwa in einen Controller oder in die ",[481,760,761],{},"handle()","-Methode eines Jobs:",[495,764,766],{"className":601,"code":765,"language":571,"meta":500,"style":500},"use Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Foundation\\Queue\\Queueable;\nuse LIVCK\\Cloud\\CloudClientInterface;\n\nfinal class ProvisionCustomer implements ShouldQueue\n{\n    use Queueable;\n\n    public function __construct(public readonly string $customer) {}\n\n    public function handle(CloudClientInterface $cloud): void\n    {\n        $cloud->tags()->ensure('kunde', $this->customer);\n    }\n}\n",[481,767,768,777,786,795,799,816,821,831,835,861,866,888,894,924,930],{"__ignoreMap":500},[504,769,770,772,775],{"class":506,"line":507},[504,771,609],{"class":549},[504,773,774],{"class":580}," Illuminate\\Contracts\\Queue\\ShouldQueue",[504,776,615],{"class":553},[504,778,779,781,784],{"class":506,"line":618},[504,780,609],{"class":549},[504,782,783],{"class":580}," Illuminate\\Foundation\\Queue\\Queueable",[504,785,615],{"class":553},[504,787,788,790,793],{"class":506,"line":628},[504,789,609],{"class":549},[504,791,792],{"class":580}," LIVCK\\Cloud\\CloudClientInterface",[504,794,615],{"class":553},[504,796,797],{"class":506,"line":635},[504,798,632],{"emptyLinePlaceholder":631},[504,800,801,804,807,810,813],{"class":506,"line":681},[504,802,803],{"class":549},"final",[504,805,806],{"class":549}," class",[504,808,809],{"class":510}," ProvisionCustomer",[504,811,812],{"class":549}," implements",[504,814,815],{"class":510}," ShouldQueue\n",[504,817,818],{"class":506,"line":686},[504,819,820],{"class":553},"{\n",[504,822,823,826,829],{"class":506,"line":706},[504,824,825],{"class":549},"    use",[504,827,828],{"class":580}," Queueable",[504,830,615],{"class":553},[504,832,833],{"class":506,"line":748},[504,834,632],{"emptyLinePlaceholder":631},[504,836,838,841,844,847,849,852,855,858],{"class":506,"line":837},9,[504,839,840],{"class":549},"    public",[504,842,843],{"class":549}," function",[504,845,846],{"class":580}," __construct",[504,848,661],{"class":553},[504,850,851],{"class":549},"public",[504,853,854],{"class":549}," readonly",[504,856,857],{"class":549}," string",[504,859,860],{"class":553}," $customer) {}\n",[504,862,864],{"class":506,"line":863},10,[504,865,632],{"emptyLinePlaceholder":631},[504,867,869,871,873,876,878,880,883,885],{"class":506,"line":868},11,[504,870,840],{"class":549},[504,872,843],{"class":549},[504,874,875],{"class":510}," handle",[504,877,661],{"class":553},[504,879,757],{"class":580},[504,881,882],{"class":553}," $cloud)",[504,884,561],{"class":549},[504,886,887],{"class":549}," void\n",[504,889,891],{"class":506,"line":890},12,[504,892,893],{"class":553},"    {\n",[504,895,897,900,902,904,906,908,910,912,914,916,919,921],{"class":506,"line":896},13,[504,898,899],{"class":553},"        $cloud",[504,901,655],{"class":549},[504,903,649],{"class":510},[504,905,652],{"class":553},[504,907,655],{"class":549},[504,909,658],{"class":510},[504,911,661],{"class":553},[504,913,664],{"class":514},[504,915,667],{"class":553},[504,917,918],{"class":580},"$this",[504,920,655],{"class":549},[504,922,923],{"class":553},"customer);\n",[504,925,927],{"class":506,"line":926},14,[504,928,929],{"class":553},"    }\n",[504,931,933],{"class":506,"line":932},15,[504,934,935],{"class":553},"}\n",[478,937,938],{},"In der Queue landen nur die Daten des Jobs. Den Client bekommt der Worker erst, wenn er den Job ausführt.",[490,940,942],{"id":941},"mehrere-verbindungen","Mehrere Verbindungen",[478,944,945],{},"Ein Token gehört immer zu einer Organisation. Betreust du mehrere Organisationen, bekommt jede eine eigene Verbindung mit ihrem Token:",[495,947,949],{"className":601,"code":948,"language":571,"meta":500,"style":500},"\u002F\u002F config\u002Flivck-cloud.php\n'connections' => [\n    'default' => [\n        'token' => env('LIVCK_CLOUD_TOKEN'),\n        \u002F\u002F …\n    ],\n    'kunde-b' => [\n        'token' => env('LIVCK_CLOUD_TOKEN_KUNDE_B'),\n        'locale' => 'de',\n    ],\n],\n",[481,950,951,957,968,977,995,1000,1005,1014,1029,1042,1046],{"__ignoreMap":500},[504,952,953],{"class":506,"line":507},[504,954,956],{"class":955},"sJ8bj","\u002F\u002F config\u002Flivck-cloud.php\n",[504,958,959,962,965],{"class":506,"line":618},[504,960,961],{"class":514},"'connections'",[504,963,964],{"class":549}," =>",[504,966,967],{"class":553}," [\n",[504,969,970,973,975],{"class":506,"line":628},[504,971,972],{"class":514},"    'default'",[504,974,964],{"class":549},[504,976,967],{"class":553},[504,978,979,982,984,987,989,992],{"class":506,"line":635},[504,980,981],{"class":514},"        'token'",[504,983,964],{"class":549},[504,985,986],{"class":510}," env",[504,988,661],{"class":553},[504,990,991],{"class":514},"'LIVCK_CLOUD_TOKEN'",[504,993,994],{"class":553},"),\n",[504,996,997],{"class":506,"line":681},[504,998,999],{"class":955},"        \u002F\u002F …\n",[504,1001,1002],{"class":506,"line":686},[504,1003,1004],{"class":553},"    ],\n",[504,1006,1007,1010,1012],{"class":506,"line":706},[504,1008,1009],{"class":514},"    'kunde-b'",[504,1011,964],{"class":549},[504,1013,967],{"class":553},[504,1015,1016,1018,1020,1022,1024,1027],{"class":506,"line":748},[504,1017,981],{"class":514},[504,1019,964],{"class":549},[504,1021,986],{"class":510},[504,1023,661],{"class":553},[504,1025,1026],{"class":514},"'LIVCK_CLOUD_TOKEN_KUNDE_B'",[504,1028,994],{"class":553},[504,1030,1031,1034,1036,1039],{"class":506,"line":837},[504,1032,1033],{"class":514},"        'locale'",[504,1035,964],{"class":549},[504,1037,1038],{"class":514}," 'de'",[504,1040,1041],{"class":553},",\n",[504,1043,1044],{"class":506,"line":863},[504,1045,1004],{"class":553},[504,1047,1048],{"class":506,"line":868},[504,1049,1050],{"class":553},"],\n",[495,1052,1054],{"className":601,"code":1053,"language":571,"meta":500,"style":500},"LivckCloud::connection('kunde-b')->services()->list();\n",[481,1055,1056],{"__ignoreMap":500},[504,1057,1058,1060,1062,1065,1067,1070,1072,1074,1076,1078,1080,1083],{"class":506,"line":507},[504,1059,524],{"class":580},[504,1061,646],{"class":549},[504,1063,1064],{"class":510},"connection",[504,1066,661],{"class":553},[504,1068,1069],{"class":514},"'kunde-b'",[504,1071,673],{"class":553},[504,1073,655],{"class":549},[504,1075,693],{"class":510},[504,1077,652],{"class":553},[504,1079,655],{"class":549},[504,1081,1082],{"class":510},"list",[504,1084,1085],{"class":553},"();\n",[478,1087,1088],{},"Lässt eine Verbindung einen Schlüssel weg, gilt der Standardwert des SDK.",[490,1090,1092],{"id":1091},"tokens-aus-deiner-datenbank","Tokens aus deiner Datenbank",[478,1094,1095,1096,1099],{},"Liegen die Tokens deiner Kunden in deiner eigenen Datenbank, baut ",[481,1097,1098],{},"withToken()"," einen Client mit den Einstellungen einer Verbindung und dem Token deiner Wahl. Ohne zweites Argument nimmt es die Standardverbindung:",[495,1101,1103],{"className":601,"code":1102,"language":571,"meta":500,"style":500},"use LIVCK\\Cloud\\Laravel\\Facades\\LivckCloud;\n\nLivckCloud::withToken($customer->livck_token)->services()->list();\n\nLivckCloud::withToken($customer->livck_token, 'kunde-b')->services()->list();\n",[481,1104,1105,1113,1117,1146,1150],{"__ignoreMap":500},[504,1106,1107,1109,1111],{"class":506,"line":507},[504,1108,609],{"class":549},[504,1110,623],{"class":580},[504,1112,615],{"class":553},[504,1114,1115],{"class":506,"line":618},[504,1116,632],{"emptyLinePlaceholder":631},[504,1118,1119,1121,1123,1126,1129,1131,1134,1136,1138,1140,1142,1144],{"class":506,"line":628},[504,1120,524],{"class":580},[504,1122,646],{"class":549},[504,1124,1125],{"class":510},"withToken",[504,1127,1128],{"class":553},"($customer",[504,1130,655],{"class":549},[504,1132,1133],{"class":553},"livck_token)",[504,1135,655],{"class":549},[504,1137,693],{"class":510},[504,1139,652],{"class":553},[504,1141,655],{"class":549},[504,1143,1082],{"class":510},[504,1145,1085],{"class":553},[504,1147,1148],{"class":506,"line":635},[504,1149,632],{"emptyLinePlaceholder":631},[504,1151,1152,1154,1156,1158,1160,1162,1165,1167,1169,1171,1173,1175,1177,1179],{"class":506,"line":681},[504,1153,524],{"class":580},[504,1155,646],{"class":549},[504,1157,1125],{"class":510},[504,1159,1128],{"class":553},[504,1161,655],{"class":549},[504,1163,1164],{"class":553},"livck_token, ",[504,1166,1069],{"class":514},[504,1168,673],{"class":553},[504,1170,655],{"class":549},[504,1172,693],{"class":510},[504,1174,652],{"class":553},[504,1176,655],{"class":549},[504,1178,1082],{"class":510},[504,1180,1085],{"class":553},[478,1182,1183,1186],{},[481,1184,1185],{},"build()"," baut einen Client aus einem Array mit denselben Schlüsseln wie eine Verbindung. Was im Array fehlt, kommt aus der Standardverbindung:",[495,1188,1190],{"className":601,"code":1189,"language":571,"meta":500,"style":500},"$cloud = LivckCloud::build([\n    'token' => $customer->livck_token,\n    'locale' => 'de',\n]);\n",[481,1191,1192,1209,1224,1235],{"__ignoreMap":500},[504,1193,1194,1197,1199,1201,1203,1206],{"class":506,"line":507},[504,1195,1196],{"class":553},"$cloud ",[504,1198,550],{"class":549},[504,1200,643],{"class":580},[504,1202,646],{"class":549},[504,1204,1205],{"class":510},"build",[504,1207,1208],{"class":553},"([\n",[504,1210,1211,1214,1216,1219,1221],{"class":506,"line":618},[504,1212,1213],{"class":514},"    'token'",[504,1215,964],{"class":549},[504,1217,1218],{"class":553}," $customer",[504,1220,655],{"class":549},[504,1222,1223],{"class":553},"livck_token,\n",[504,1225,1226,1229,1231,1233],{"class":506,"line":628},[504,1227,1228],{"class":514},"    'locale'",[504,1230,964],{"class":549},[504,1232,1038],{"class":514},[504,1234,1041],{"class":553},[504,1236,1237],{"class":506,"line":635},[504,1238,1239],{"class":553},"]);\n",[478,1241,1242,1243,1246],{},"Ist der übergebene Token leer, wirft der Aufruf eine ",[481,1244,1245],{},"MissingTokenException",". Er weicht nie auf einen konfigurierten Token aus, so landet die Anfrage eines Kunden ohne Token nicht in deiner eigenen Organisation.",[478,1248,1249,1250,1253],{},"Beide Clients hält das Paket nicht vor, jeder Aufruf baut einen neuen. Hol dir den Client deshalb dort, wo du ihn brauchst, etwa im Job für genau diesen Kunden. ",[481,1251,1252],{},"LivckCloud::fake()"," fängt auch diese Clients ab.",[1255,1256,1259,1270,1324],"callout",{"title":1257,"type":1258},"Tokens verschlüsselt speichern","tip",[478,1260,1261,1262,1265,1266,1269],{},"Leg die Tokens deiner Kunden nicht im Klartext ab. Mit dem Cast ",[481,1263,1264],{},"encrypted"," verschlüsselt Laravel die Spalte mit deinem ",[481,1267,1268],{},"APP_KEY"," und entschlüsselt sie beim Lesen:",[495,1271,1273],{"className":601,"code":1272,"language":571,"meta":500,"style":500},"protected function casts(): array\n{\n    return [\n        'livck_token' => 'encrypted',\n    ];\n}\n",[481,1274,1275,1292,1296,1303,1315,1320],{"__ignoreMap":500},[504,1276,1277,1280,1282,1285,1287,1289],{"class":506,"line":507},[504,1278,1279],{"class":549},"protected",[504,1281,843],{"class":549},[504,1283,1284],{"class":510}," casts",[504,1286,652],{"class":553},[504,1288,561],{"class":549},[504,1290,1291],{"class":549}," array\n",[504,1293,1294],{"class":506,"line":618},[504,1295,820],{"class":553},[504,1297,1298,1301],{"class":506,"line":628},[504,1299,1300],{"class":549},"    return",[504,1302,967],{"class":553},[504,1304,1305,1308,1310,1313],{"class":506,"line":635},[504,1306,1307],{"class":514},"        'livck_token'",[504,1309,964],{"class":549},[504,1311,1312],{"class":514}," 'encrypted'",[504,1314,1041],{"class":553},[504,1316,1317],{"class":506,"line":681},[504,1318,1319],{"class":553},"    ];\n",[504,1321,1322],{"class":506,"line":686},[504,1323,935],{"class":553},[478,1325,1326,1327,1330,1331,1333,1334,1337],{},"Verschlüsselte Werte sind deutlich länger als der Token, die Spalte braucht deshalb den Typ ",[481,1328,1329],{},"text",". Wechselst du den ",[481,1332,1268],{},", trag den alten in ",[481,1335,1336],{},"APP_PREVIOUS_KEYS"," ein. Sonst lassen sich die gespeicherten Tokens nicht mehr lesen.",[490,1339,1341],{"id":1340},"testen","Testen",[478,1343,1344,1346],{},[481,1345,1252],{}," ersetzt jede Verbindung durch den Fake des SDK. Nichts verlässt den Prozess, Wiederholungen warten nicht, und einen Token braucht der Test nicht:",[495,1348,1350],{"className":601,"code":1349,"language":571,"meta":500,"style":500},"use LIVCK\\Cloud\\Laravel\\Facades\\LivckCloud;\nuse LIVCK\\Cloud\\Testing\\MockResponse;\nuse LIVCK\\Cloud\\Testing\\RecordedRequest;\n\ntest('ein neuer Kunde bekommt seinen Tag', function () {\n    $fake = LivckCloud::fake([\n        MockResponse::json(['data' => $tagPayload], 201),\n    ]);\n\n    ProvisionCustomer::dispatchSync('4711');\n\n    $fake->assertSent(fn (RecordedRequest $request, string $connection): bool =>\n        $connection === 'default' && $request->matches('POST', '\u002Fv1\u002Ftags\u002Fensure'));\n});\n",[481,1351,1352,1360,1369,1378,1382,1400,1416,1442,1447,1451,1467,1471,1509,1544],{"__ignoreMap":500},[504,1353,1354,1356,1358],{"class":506,"line":507},[504,1355,609],{"class":549},[504,1357,623],{"class":580},[504,1359,615],{"class":553},[504,1361,1362,1364,1367],{"class":506,"line":618},[504,1363,609],{"class":549},[504,1365,1366],{"class":580}," LIVCK\\Cloud\\Testing\\MockResponse",[504,1368,615],{"class":553},[504,1370,1371,1373,1376],{"class":506,"line":628},[504,1372,609],{"class":549},[504,1374,1375],{"class":580}," LIVCK\\Cloud\\Testing\\RecordedRequest",[504,1377,615],{"class":553},[504,1379,1380],{"class":506,"line":635},[504,1381,632],{"emptyLinePlaceholder":631},[504,1383,1384,1387,1389,1392,1394,1397],{"class":506,"line":681},[504,1385,1386],{"class":510},"test",[504,1388,661],{"class":553},[504,1390,1391],{"class":514},"'ein neuer Kunde bekommt seinen Tag'",[504,1393,667],{"class":553},[504,1395,1396],{"class":549},"function",[504,1398,1399],{"class":553}," () {\n",[504,1401,1402,1405,1407,1409,1411,1414],{"class":506,"line":686},[504,1403,1404],{"class":553},"    $fake ",[504,1406,550],{"class":549},[504,1408,643],{"class":580},[504,1410,646],{"class":549},[504,1412,1413],{"class":510},"fake",[504,1415,1208],{"class":553},[504,1417,1418,1421,1423,1426,1429,1432,1434,1437,1440],{"class":506,"line":706},[504,1419,1420],{"class":580},"        MockResponse",[504,1422,646],{"class":549},[504,1424,1425],{"class":510},"json",[504,1427,1428],{"class":553},"([",[504,1430,1431],{"class":514},"'data'",[504,1433,964],{"class":549},[504,1435,1436],{"class":553}," $tagPayload], ",[504,1438,1439],{"class":580},"201",[504,1441,994],{"class":553},[504,1443,1444],{"class":506,"line":748},[504,1445,1446],{"class":553},"    ]);\n",[504,1448,1449],{"class":506,"line":837},[504,1450,632],{"emptyLinePlaceholder":631},[504,1452,1453,1456,1458,1461,1463,1465],{"class":506,"line":863},[504,1454,1455],{"class":580},"    ProvisionCustomer",[504,1457,646],{"class":549},[504,1459,1460],{"class":510},"dispatchSync",[504,1462,661],{"class":553},[504,1464,670],{"class":514},[504,1466,751],{"class":553},[504,1468,1469],{"class":506,"line":868},[504,1470,632],{"emptyLinePlaceholder":631},[504,1472,1473,1476,1478,1481,1483,1486,1489,1492,1495,1498,1501,1503,1506],{"class":506,"line":890},[504,1474,1475],{"class":553},"    $fake",[504,1477,655],{"class":549},[504,1479,1480],{"class":510},"assertSent",[504,1482,661],{"class":553},[504,1484,1485],{"class":549},"fn",[504,1487,1488],{"class":553}," (",[504,1490,1491],{"class":580},"RecordedRequest",[504,1493,1494],{"class":553}," $request, ",[504,1496,1497],{"class":549},"string",[504,1499,1500],{"class":553}," $connection)",[504,1502,561],{"class":549},[504,1504,1505],{"class":549}," bool",[504,1507,1508],{"class":553}," =>\n",[504,1510,1511,1514,1517,1520,1523,1526,1528,1531,1533,1536,1538,1541],{"class":506,"line":896},[504,1512,1513],{"class":553},"        $connection ",[504,1515,1516],{"class":549},"===",[504,1518,1519],{"class":514}," 'default'",[504,1521,1522],{"class":549}," &&",[504,1524,1525],{"class":553}," $request",[504,1527,655],{"class":549},[504,1529,1530],{"class":510},"matches",[504,1532,661],{"class":553},[504,1534,1535],{"class":514},"'POST'",[504,1537,667],{"class":553},[504,1539,1540],{"class":514},"'\u002Fv1\u002Ftags\u002Fensure'",[504,1542,1543],{"class":553},"));\n",[504,1545,1546],{"class":506,"line":926},[504,1547,1548],{"class":553},"});\n",[478,1550,1551,1554,1555,1557,1558,1560,1561,1564,1565,667,1568,667,1571,1557,1574,1577],{},[481,1552,1553],{},"$tagPayload"," steht für einen Tag, wie ihn die API liefert. Der Matcher bekommt die Anfrage und den Namen ihrer Verbindung, bei Clients aus ",[481,1556,1098],{}," und ",[481,1559,1185],{}," ist das ",[481,1562,1563],{},"ondemand",". Dazu gibt es ",[481,1566,1567],{},"assertNotSent()",[481,1569,1570],{},"assertSentCount()",[481,1572,1573],{},"assertNothingSent()",[481,1575,1576],{},"assertNoPendingResponses()",".",[478,1579,1580,1581,1584,1585,1557,1587,1589],{},"Ruf ",[481,1582,1583],{},"fake()"," auf, bevor dein Code einen Client holt. Der Fake gilt dann für die Facade, injizierte Clients, alle Verbindungen und die Clients aus ",[481,1586,1098],{},[481,1588,1185],{},". Eine Anfrage ohne vorbereitete Antwort wirft eine Exception, ein Test sendet also nie mehr als geplant.",[490,1591,1593],{"id":1592},"verbindung-prüfen","Verbindung prüfen",[495,1595,1597],{"className":497,"code":1596,"language":499,"meta":500,"style":500},"php artisan livck-cloud:check\n",[481,1598,1599],{"__ignoreMap":500},[504,1600,1601,1603,1605],{"class":506,"line":507},[504,1602,571],{"class":510},[504,1604,574],{"class":514},[504,1606,1607],{"class":514}," livck-cloud:check\n",[478,1609,1610,1611,1615,1616,1577],{},"Der Befehl zeigt die Organisation, Art und Rechte des Tokens, sein Ablaufdatum und die Ratenbegrenzung. Danach fragt er die Standorte ab und prüft so, ob dein Plan API-Zugang hat. Dafür braucht der Token ",[1612,1613,1614],"strong",{},"Services anzeigen",". Eine andere Verbindung prüfst du mit ",[481,1617,1618],{},"php artisan livck-cloud:check kunde-b",[1620,1621,1622,1635],"table",{},[1623,1624,1625],"thead",{},[1626,1627,1628,1632],"tr",{},[1629,1630,1631],"th",{},"Exit-Code",[1629,1633,1634],{},"Bedeutung",[1636,1637,1638,1649,1659],"tbody",{},[1626,1639,1640,1646],{},[1641,1642,1643],"td",{},[481,1644,1645],{},"0",[1641,1647,1648],{},"Die Verbindung funktioniert",[1626,1650,1651,1656],{},[1641,1652,1653],{},[481,1654,1655],{},"1",[1641,1657,1658],{},"Die API lehnt den Token ab oder ist nicht erreichbar",[1626,1660,1661,1666],{},[1641,1662,1663],{},[481,1664,1665],{},"2",[1641,1667,1668],{},"Die Konfiguration ist unvollständig, etwa weil der Token fehlt",[490,1670,1672],{"id":1671},"weiterführende-themen","Weiterführende Themen",[1674,1675,1676,1686,1694,1699],"ul",{},[1677,1678,1679,1685],"li",{},[486,1680,1684],{"href":1681,"rel":1682},"https:\u002F\u002Fgithub.com\u002FLIVCK\u002Fcloud-laravel#readme",[1683],"nofollow","README auf GitHub"," -- alle Optionen, Laravels HTTP-Client als Transport, Octane",[1677,1687,1688,1693],{},[486,1689,1692],{"href":1690,"rel":1691},"https:\u002F\u002Fpackagist.org\u002Fpackages\u002Flivck\u002Fcloud-laravel",[1683],"livck\u002Fcloud-laravel auf Packagist"," -- Versionen und Abhängigkeiten",[1677,1695,1696,1698],{},[486,1697,402],{"href":403}," -- Builder, Abfragen und Fehler des Clients",[1677,1700,1701,1703],{},[486,1702,398],{"href":399}," -- Alle verfügbaren Endpunkte im Überblick",[1705,1706,1707],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":500,"searchDepth":628,"depth":628,"links":1709},[1710,1711,1712,1713,1714,1715,1716],{"id":492,"depth":618,"text":493},{"id":594,"depth":618,"text":595},{"id":941,"depth":618,"text":942},{"id":1091,"depth":618,"text":1092},{"id":1340,"depth":618,"text":1341},{"id":1592,"depth":618,"text":1593},{"id":1671,"depth":618,"text":1672},"Das offizielle Laravel-Paket für die LIVCK Cloud API. Konfiguration, Facade, mehrere Verbindungen und Tests.","md",{},null,{"title":406,"description":1717},"Ui0FNs9MPvLFOa6o6XB_bDjKMUGPwqETsMlAg9k-yHA",1790473987181]