{"id":33935,"date":"2023-10-19T16:13:10","date_gmt":"2023-10-19T14:13:10","guid":{"rendered":"https:\/\/www.blue.works\/?p=33935"},"modified":"2026-02-17T12:58:37","modified_gmt":"2026-02-17T11:58:37","slug":"im-entwickler-boudoir-i-cva-in-der-cloud","status":"publish","type":"post","link":"https:\/\/www.blue.works\/de\/im-entwickler-boudoir-i-cva-in-der-cloud\/","title":{"rendered":"Im Entwickler-Boudoir I &#8211; CVA in der Cloud"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">SAP Code Vulnerability Analyzer in CloudATC<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Barthel weiss, wo er den Most holt<\/h3>\n\n\n\n<p>In einer Zeit, in der <em>Cyber<\/em>-Sicherheitsvorf\u00e4lle immer h\u00e4ufiger auftreten, unterstreichen aktuelle Berichte die Bedeutung von robusten Sicherheitsmechanismen.<\/p>\n\n\n\n<p>Zwei Beispiele aus vielen.<\/p>\n\n\n\n<p>Ein Vizeadmiral der Deutschen Bundeswehr warnte k\u00fcrzlich vor der Zunahme von <em>Cyber<\/em>-Angriffen, <a href=\"https:\/\/www.cio.de\/a\/bundeswehr-experte-warnt-vor-cyberangriffen,3715976\">wie in einem Artikel von Thomas Daum<\/a> berichtet wurde. Zudem zeigte ein <a href=\"https:\/\/www.infoguard.ch\/de\/blog\/warum-schweizer-industriefirmen-von-cyber-attacken-betroffen-sind\">Bericht von InfoGuard<\/a>, dass besonders Schweizer Industriefirmen Ziel von <em>Cyber<\/em>-Attacken sind.<\/p>\n\n\n\n<p>Diese Entwicklungen machen Sicherheit, neben Fehlerfreiheit und <em>Usability<\/em> zu einer entscheidenden strategischen Komponente bei der Software-Entwicklung.<\/p>\n\n\n\n<p>SAP hat hierzu das <a href=\"https:\/\/www.sap.com\/about\/trust-center.html?pdf-asset=a248a699-627c-0010-82c7-eda71af511fa&amp;page=3\">secure SDL (secure Software Development Lifecycle)<\/a> etabliert. Doch da SAP Anwendungen schon seit R\/2 Zeiten die M\u00f6glichkeit f\u00fcr Kunden-Erweiterungen oder -Eigenentwicklungen anbieten, \u00f6ffnet sich eine grosse Sicherheitsl\u00fccke in den hoffentlich sicheren SAP Anwendungen.<\/p>\n\n\n\n<p>Ehrlich: Welcher SAP Kunde kann <a href=\"https:\/\/pt.wikipedia.org\/wiki\/Caio_M%C3%BAcio_C%C3%A9vola#\/media\/Ficheiro:Ca'_Rezzonico_-_Mucius_Scaevola_before_Porsenna_-_Giovanni_Antonio_Pellegrini.jpg\">seine Hand ins Feuer<\/a> legen, dass seine Eigenentwicklungen sicher sind, dass kein Entwickler oder Entwicklerin eine L\u00fccke hinterlassen oder sogar ein Hintert\u00fcrchen im Code vergessen hat.<\/p>\n\n\n\n<p>So etwas habe ich wirklich erlebt: \u201e<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">&nbsp;<\/mark><img loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"14\" class=\"wp-image-34004\" style=\"width: 550px;\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-25.png\" alt=\"\">\u201c, und dies in einer produktiven Anwendung! War nicht mal b\u00f6se gemeint, sondern nur ein bequemer Pantoffel. Die ganze strukturierte Transportiererei war dem Herrn schlicht zu umst\u00e4ndlich. Meistens ist nicht b\u00f6ser Wille, sondern Bequemlichkeit der Grund f\u00fcr viele Sicherheitsl\u00fccken.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"395\" height=\"217\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-11.png\" alt=\"\" class=\"wp-image-33941\"\/><\/figure>\n\n\n\n<p>Aber auch das Umfeld der Projekte tr\u00e4gt zu unsicherem Code bei. Projekte haben strenge Budget- und Zeit-Fesseln: F\u00fcr den Projektleiter z\u00e4hlt, die versprochenen Funktionen in der geplanten Projektdauer umzusetzen. Da bleibt f\u00fcr das Thema Security wohl nicht mehr viel Zeit \u00fcbrig. Traurig, aber wahr: Sicherer Code ist unsichtbar und f\u00f6rdert daher die Karriere nicht.<\/p>\n\n\n\n<p>Tats\u00e4chlich erscheint in diesem <a href=\"https:\/\/sapinsider.org\/research-reports\/cybersecurity-threats-to-sap-systems\/\">Report von sapinsider.org<\/a> \u00fcber die Gefahren f\u00fcr die <em>Cyber<\/em>-Sicherheit von SAP-Systemen <em>Custome Code Vulnerability<\/em> im oberen Mittelfeld.<\/p>\n\n\n\n<p>Viele L\u00f6sungsanbieter haben diesen Anwendungsfall f\u00fcr sich entdeckt und bieten ihre Dienste oder Produkte zur Validierung von <em>Custom Code<\/em> an. So auch die SAP selber mit der <a href=\"https:\/\/sapinsider.org\/articles\/securing-custom-sap-code\/\">SAP Code Vulnerability Analyzer<\/a> (CVA). Dieser ist die Check-Variante SLIN_SEC im Code Inspector, kann also leicht mit dem ABAP Test Cockpit (ATC) in den Entwicklungsworkflow eingebunden werden. SAP nutzt ihn selber, um \u00fcber 500 Millionen Lines of Code zu \u00fcberpr\u00fcfen.<\/p>\n\n\n\n<p>Toll, sage ich mir. Lass es uns ausprobieren \u2012 Doch warum sind die Checks inaktiv?<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"433\" height=\"357\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-12.png\" alt=\"\" class=\"wp-image-33944\"\/><\/figure>\n\n\n\n<p>Ich entdecke, dass diese Check-Variante eine lizenzpflichtige Komponente ist: SAP Materialnummer 7019502. Ich schaue kurz in die SAP Preisliste, und muss mich setzen. Ein Schock! F\u00fcnf <em>Users<\/em> sollen 249.225,00 CHF kosten! F\u00fcnf! Und hinzu kommen die j\u00e4hrlichen Wartungskosten!<\/p>\n\n\n\n<p>Jedem, dem ich das erz\u00e4hlt habe, ist sichtbar das Kinn heruntergefallen. Keine Chance auch nur daran zu denken, daf\u00fcr im Unternehmen Budget loszueisen \u2012 wenn man keine Bank ist!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sonnig mit Wolken<\/h3>\n\n\n\n<p>Wie elektrisiert war ich dann, als ich w\u00e4hrend eines Vortrags von <a href=\"https:\/\/blogs.sap.com\/2020\/08\/14\/abap-test-cockpit-in-the-cloud-what-is-already-possible\/\">Olga Dolinskaja<\/a> h\u00f6rte, dass der CVA innerhalb der Custom Code Migration App auf dem <a href=\"https:\/\/community.sap.com\/topics\/btp-abap-environment\">BTP ABAP Environment<\/a> (liebevoll auch <em>Steampunk<\/em> genannt) frei von Lizenzkosten ist. Es entstehen nur die Kosten f\u00fcr eben diese ABAP Instanz auf der BTP (Business Technology Platform), die nicht unerheblich sind, aber viel geringer als die Materialnummer 7019502.<\/p>\n\n\n\n<p>Man kann sogar eine ABAP Instanz mit <a href=\"https:\/\/discovery-center.cloud.sap\/serviceCatalog\/abap-environment?region=all&amp;tab=service_plan&amp;service_plan=free&amp;commercialModel=cloud\">free_tier Service Plan<\/a> hierzu verwenden, auch wenn dieser leider die Einschr\u00e4nkung von nur 10 ATC L\u00e4ufen hat. Aber immerhin\u2026<\/p>\n\n\n\n<p>Ganz klar eine Karotte, um uns in die Cloud zu locken, aber was f\u00fcr eine gutschmeckende!<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"843\" height=\"421\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-13.png\" alt=\"\" class=\"wp-image-33947\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-13.png 843w, https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-13-768x384.png 768w\" sizes=\"(max-width: 843px) 100vw, 843px\" \/><\/figure>\n\n\n\n<p>Ich st\u00fcrze mich gleich auf unseren <em>Sandbox-Tenant<\/em>. Angeblich ist ja das Setup leichter als <em>on Premise<\/em> (siehe Bild). Doch weit gefehlt, wenn man bei Adam und Eva anfangen muss: Cloud Connector installieren, BTP ABAP Environment installieren, alles miteinander verbinden.<\/p>\n\n\n\n<p>Ich ertrinke in <em>Guides<\/em> und Dokumentationen. Entweder es ist zu viel da, oder es klaffen L\u00fccken. Da br\u00e4uchte man einen Berater. Ops, bin ich ja selber. Nun gut, es heisst also, die Z\u00e4hne zusammenzubeissen und sich durchzuk\u00e4mpfen.<\/p>\n\n\n\n<p>Mein erster Versuch, einen dedizierten <em>Subaccount<\/em> einzurichten, scheiterte, denn ungl\u00fccklicherweise hatte ich cf-eu10 als \u201e<em>Region<\/em>\u201c gew\u00e4hlt, um sp\u00e4ter festzustellen, dass es nicht reichte, die Cloud Foundry einzuschalten, nein, man muss den Cloud Foundry Service (Free Tier) beziehen. Und an dem Tag meines Versuchs wurde dieser (noch?) nicht f\u00fcr cf-eu10 angeboten. Also hiess es, alles wieder l\u00f6schen, denn ich fand keine M\u00f6glichkeit, die Region eines Subaccounts nachtr\u00e4glich zu wechseln.<\/p>\n\n\n\n<p>Dass die unterschiedlichen Dienste nicht gleichm\u00e4ssig auf allen Regionen verf\u00fcgbar sind, ist ein immer wieder aufflammendes \u00c4rgernis.<\/p>\n\n\n\n<p>Mein zweiter Versuch mit Region cf-eu20 gelang schliesslich.<\/p>\n\n\n\n<p>Danach ging es in der frischen ABAP Instanz weiter, es musste die Verbindung zum ABAP System angelegt werden \u2012 hier sehnt man sich nach der Einfachheit einer SM59! Aber ich habe es schlie\u00dflich geschafft, jetzt weiss ich, wie es geht.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"649\" height=\"320\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-14.png\" alt=\"\" class=\"wp-image-33950\"\/><\/figure>\n\n\n\n<p>Auf meinen ersten Lauf war ich gespannt. Die CVA verbirgt sich hinter einem Custom Code Analyse Projekt der Custom Code Migration App.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"675\" height=\"253\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-15.png\" alt=\"\" class=\"wp-image-33953\"\/><\/figure>\n\n\n\n<p>Die App entdeckt korrekterweise unseren Kunden-Namensraum \/BLUWRKS\/.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"727\" height=\"466\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-16.png\" alt=\"\" class=\"wp-image-33956\"\/><\/figure>\n\n\n\n<p>Unser Sandbox System hat nicht viel Custom Code, daher gibt es nur dreizehn Befunde:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1035\" height=\"481\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-17.png\" alt=\"\" class=\"wp-image-33959\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-17.png 1035w, https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-17-1024x476.png 1024w, https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-17-768x357.png 768w\" sizes=\"(max-width: 1035px) 100vw, 1035px\" \/><\/figure>\n\n\n\n<p>Das Ergebnis besteht aus einer langen Trefferliste mit praktisch keiner Workflow-M\u00f6glichkeiten. Aber immerhin\u2026<\/p>\n\n\n\n<p>Der Prio 1 Treffer, \u00fcbrigens, wurde vom CRM WebUI Erweiterungswerkzeug, dem AXT, generiert und geh\u00f6rt daher in die Ausnahmeliste, wenn sie mal verf\u00fcgbar sein wird:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"909\" height=\"527\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-18.png\" alt=\"\" class=\"wp-image-33962\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-18.png 909w, https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-18-768x445.png 768w\" sizes=\"(max-width: 909px) 100vw, 909px\" \/><\/figure>\n\n\n\n<p>Bei vielen Objekten kann man mit einem Klick sich die fragliche Stelle anzeigen lassen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1062\" height=\"371\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-19.png\" alt=\"\" class=\"wp-image-33965\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-19.png 1062w, https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-19-1024x358.png 1024w, https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-19-768x268.png 768w\" sizes=\"(max-width: 1062px) 100vw, 1062px\" \/><\/figure>\n\n\n\n<p>Zun\u00e4chst wird der Treffer im adt Service auf dem Entwicklungssystem ge\u00f6ffnet.<\/p>\n\n\n\n<p>Es wird aber ein Button angeboten, um die Stelle im Eclipse-Editor zu \u00f6ffnen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1062\" height=\"366\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-20.png\" alt=\"\" class=\"wp-image-33968\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-20.png 1062w, https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-20-1024x353.png 1024w, https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-20-768x265.png 768w\" sizes=\"(max-width: 1062px) 100vw, 1062px\" \/><\/figure>\n\n\n\n<p>Mit grossem Tam-Tam hat SAP angek\u00fcndigt, dass es jetzt eine ATC Configurator App gibt, aber mit der kann man nur ein paar Attribute und die Priorit\u00e4t der Checks \u00e4ndern. Ich kann nur hoffen, dass die App weiter angereichert wird, denn stand heute (Q3 2023) ist sie kaum brauchbar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Was tun?<\/h3>\n\n\n\n<p>Alles ist eingerichtet, der CVA im cloud ATC funktioniert. Doch das Ergebnis ist etwas sperrig, da es keine Workflow-M\u00f6glichkeiten bietet, um die Arbeit an der Ergebnisliste zu verteilen.<\/p>\n\n\n\n<p>Man muss also das Prozedere gut durchdenken und organisieren, besonders wenn man von dem ABAP free tier Service Plan Gebrauch macht, da man hier nur 10 ATC L\u00e4ufe frei hat. Denn jedes Entwicklungssystem ben\u00f6tigt einen eigenen Lauf.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Vorschlag<\/h4>\n\n\n\n<p>Der erste Aufruf des CVAs sollte als kleines internes Projekt aufgesetzt werden, mit klaren Rollen und Zust\u00e4ndigkeiten. Die Entwicklungsleitung sollte hier die F\u00fchrung \u00fcbernehmen, und jedes Line-of-Business Entwicklungsteam sollte einen oder eine Senior-Entwicklerin daf\u00fcr einplanen.&nbsp;Man kann dieses IT-Projekt zum Beispiel mit Hilfe eines Cloud ALM Projektes steuern. Zum Beispiel kann man dedizierte Rollen anlegen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"117\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-21.png\" alt=\"\" class=\"wp-image-33971\"\/><\/figure>\n\n\n\n<p>Ebenso kann man passende <em>Workstreams<\/em> erstellen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"735\" height=\"187\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-22.png\" alt=\"\" class=\"wp-image-33974\"\/><\/figure>\n\n\n\n<p>Die <em>Sytem Groups<\/em> und <em>Deployment Plans<\/em>, mit denen man innerhalb des Projektes die ABAP Systeme auch transport-m\u00e4ssig innerhalb von <em>Releases<\/em> steuern kann, deute ich hier nur an. Ebenso die <em>Deliverables<\/em> eines Projektes. Es soll ja noch Stoff f\u00fcr einen weiteren Blog \u00fcbrigbleiben.<\/p>\n\n\n\n<p>Die Prio 1 F\u00e4lle w\u00fcrde ich im gesamten Team durchzuarbeiten, um gemeinsam ein Bewusstsein f\u00fcr die F\u00e4lle zu erlangen und gemeinsam getragene Entscheidungen zu treffen.<\/p>\n\n\n\n<p>Im Falle von Prio 2 und 3 Treffern w\u00fcrde ich die Ergebnisliste als Excel Datei herunterladen und nach Zust\u00e4ndigkeiten in weitere Dateien separieren und verteilen. Man kann \u201e<em>Package<\/em>\u201c und \u201e<em>Processor<\/em>\u201c als Kriterium f\u00fcr die Verteilung heranziehen. Auch hier kann man innerhalb des Cloud ALM Projektes die Verteilung der Excel-Arbeitspakete per Project Tasks durchf\u00fchren:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1062\" height=\"319\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-23.png\" alt=\"\" class=\"wp-image-33977\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-23.png 1062w, https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-23-1024x308.png 1024w, https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/image-23-768x231.png 768w\" sizes=\"(max-width: 1062px) 100vw, 1062px\" \/><\/figure>\n\n\n\n<p>Die einzelnen Entwicklerinnen werden \u00fcber Sub-Tasks gesteuert und k\u00f6nnen einzeln den Status setzen. Auch gibt es eine direkte Verbindung zum Test-Management und nat\u00fcrlich mit dem finalen <em>Deployment<\/em> in das Produktivsystem.<\/p>\n\n\n\n<p>Wer den Komfort des direkten Absprungs in den lokalen ATC-Service mag, kann seine Treffer in der Cloud App per Filterung finden und von dort aus in den Editor (<em>Eclipse<\/em> mit den ABAP Developer Tools, ADT) \u00f6ffnen.<\/p>\n\n\n\n<p><em>Usage<\/em> Daten sind n\u00fctzlich, aber solange nicht aufgerufenes, jedoch unsicheres Coding im Produktivsystem vorhanden ist, muss es korrigiert werden \u2012 oder gel\u00f6scht.<\/p>\n\n\n\n<p>Das \u201e<em>Scoping<\/em>\u201c der Custom Code Migration App ist \u00fcberfl\u00fcssig, denn es wird nur bei einer tats\u00e4chlichen Migration mit Hilfe des Software Update Managers (SUM) verwertet.<\/p>\n\n\n\n<p>Die Erkenntnisse aus den Checks sollten in die unternehmenseigenen Programmier-Richtlinien einfliessen.<\/p>\n\n\n\n<p>Ein neuer Kontroll-Lauf nach sagen wir einem Jahr sollte eine viel viel kleinere Trefferliste erzeugen.<\/p>\n\n\n\n<p>Eine Anmerkung zum Schluss. Seit undenklichen SAP Gui Zeiten spricht das Custom Code Management von \u201eProjekten\u201c. Und seit undenklichen Zeiten haben diese CCM-Projekte keine Verbindung mit den \u201eechten\u201c Projekten, die mit Staff und Budget innerhalb einer vorgegebenen Zeit ein Ergebnis zu liefern trachten. Beide haben (leider) keine Verkn\u00fcpfung miteinander.<\/p>\n\n\n\n<p>Viel Spass!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In einer Zeit, in der Cyber-Sicherheitsvorf\u00e4lle immer h\u00e4ufiger auftreten, unterstreichen aktuelle Berichte die Bedeutung von robusten Sicherheitsmechanismen.<\/p>\n","protected":false},"author":16,"featured_media":33982,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":"[]"},"categories":[96],"tags":[264],"class_list":["post-33935","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sap-alm-insights","tag-security-de"],"acf":[],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/www.blue.works\/wp-content\/uploads\/2023\/10\/fly-d-BH0Wwlmv2oA-unsplash-scaled.jpg","_links":{"self":[{"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/posts\/33935","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/comments?post=33935"}],"version-history":[{"count":21,"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/posts\/33935\/revisions"}],"predecessor-version":[{"id":45167,"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/posts\/33935\/revisions\/45167"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/media\/33982"}],"wp:attachment":[{"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/media?parent=33935"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/categories?post=33935"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/tags?post=33935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}