{"id":12077,"date":"2018-11-28T19:41:05","date_gmt":"2018-11-28T18:41:05","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/no-more-recovery-conf-in-postgresql-12\/"},"modified":"2018-11-28T19:41:05","modified_gmt":"2018-11-28T18:41:05","slug":"no-more-recovery-conf-in-postgresql-12","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/no-more-recovery-conf-in-postgresql-12\/","title":{"rendered":"No more recovery.conf in PostgreSQL 12"},"content":{"rendered":"<p>Traditionally everything which is related to recovery in PostgreSQL goes to <a>recovery.conf<\/a>. This is not only true for recovery settings but also for turning an instance into a replica which follows a master. Some days ago <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=2dedf4d9a899b36d1a8ed29be5efbd1b31a8fe85\" target=\"_blank\" rel=\"noopener noreferrer\">this commit<\/a> landed in the PostgreSQL git repository. What that effectively means is, that there will be no more recovery.conf starting with PostgreSQL 12. How does that work then? Lets do some tests.<\/p>\n<p><!--more--><\/p>\n<p>Obviously you need the latest development version of PostgreSQL (if you are not sure on how to do that check <a href=\"https:\/\/www.dbi-services.com\/blog\/testing-postgresql-development-snapshots\/\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a> and <a href=\"https:\/\/www.dbi-services.com\/blog\/testing-new-postgresql-features-before-alphabetarc-releases\/\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>):<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\npostgres@pgbox:\/home\/postgres\/ [PGDEV] psql -X postgres\npsql (12devel)\nType \"help\" for help.\n\npostgres=# select version();\n                                                  version                                                   \n------------------------------------------------------------------------------------------------------------\n PostgreSQL 12devel on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit\n(1 row)\n<\/pre>\n<p>Lets look at the replica case first. When you do a pg_basebackup you can tell it to write a recovery.conf file (at least you could tell that up to PostgreSQL 11). So what changed here:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgbox:\/home\/postgres\/ [PGDEV] pg_basebackup --help | grep -A 1 recovery\n  -R, --write-recovery-conf\n                         write configuration for replication\n<\/pre>\n<p>When you compare that to a version before 12 you&#8217;ll notice the difference in wording:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgbox:\/home\/postgres\/ [PGDEV] \/u01\/app\/postgres\/product\/10\/db_4\/bin\/pg_basebackup --help | grep -A 1 recovery\n  -R, --write-recovery-conf\n                         write recovery.conf for replication\n<\/pre>\n<p>The word &#8220;recovery.conf&#8221; is gone and it is a more general statement about replication configuration now. What does pg_baebackup do now in PostgreSQL 12 when we ask to write the configuration for recovery:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgbox:\/home\/postgres\/ [PGDEV] pg_basebackup -R -D \/var\/tmp\/pg12s\/\n<\/pre>\n<p>We do not have a recovery.conf file:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgbox:\/home\/postgres\/ [PGDEV] ls -la \/var\/tmp\/pg12s\/\ntotal 64\ndrwxr-xr-x. 20 postgres postgres  4096 Nov 27 20:19 .\ndrwxrwxrwt.  6 root     root       256 Nov 27 20:19 ..\n-rw-------.  1 postgres postgres   224 Nov 27 20:19 backup_label\ndrwx------.  5 postgres postgres    41 Nov 27 20:19 base\n-rw-------.  1 postgres postgres    33 Nov 27 20:19 current_logfiles\ndrwx------.  2 postgres postgres  4096 Nov 27 20:19 global\ndrwx------.  2 postgres postgres     6 Nov 27 20:19 pg_commit_ts\ndrwx------.  2 postgres postgres     6 Nov 27 20:19 pg_dynshmem\n-rw-------.  1 postgres postgres  4513 Nov 27 20:19 pg_hba.conf\n-rw-------.  1 postgres postgres  1636 Nov 27 20:19 pg_ident.conf\ndrwxr-xr-x.  2 postgres postgres    32 Nov 27 20:19 pg_log\ndrwx------.  4 postgres postgres    68 Nov 27 20:19 pg_logical\ndrwx------.  4 postgres postgres    36 Nov 27 20:19 pg_multixact\ndrwx------.  2 postgres postgres     6 Nov 27 20:19 pg_notify\ndrwx------.  2 postgres postgres     6 Nov 27 20:19 pg_replslot\ndrwx------.  2 postgres postgres     6 Nov 27 20:19 pg_serial\ndrwx------.  2 postgres postgres     6 Nov 27 20:19 pg_snapshots\ndrwx------.  2 postgres postgres     6 Nov 27 20:19 pg_stat\ndrwx------.  2 postgres postgres     6 Nov 27 20:19 pg_stat_tmp\ndrwx------.  2 postgres postgres     6 Nov 27 20:19 pg_subtrans\ndrwx------.  2 postgres postgres     6 Nov 27 20:19 pg_tblspc\ndrwx------.  2 postgres postgres     6 Nov 27 20:19 pg_twophase\n-rw-------.  1 postgres postgres     3 Nov 27 20:19 PG_VERSION\ndrwx------.  3 postgres postgres    60 Nov 27 20:19 pg_wal\ndrwx------.  2 postgres postgres    18 Nov 27 20:19 pg_xact\n-rw-------.  1 postgres postgres   390 Nov 27 20:19 postgresql.auto.conf\n-rw-------.  1 postgres postgres 26000 Nov 27 20:19 postgresql.conf\n-rw-------.  1 postgres postgres     0 Nov 27 20:19 standby.signal\n<\/pre>\n<p>Replica related configuration is appended to postgresql.auto.conf:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgbox:\/home\/postgres\/ [PGDEV] cat \/var\/tmp\/pg12s\/postgresql.auto.conf \n# Do not edit this file manually!\n# It will be overwritten by the ALTER SYSTEM command.\nlogging_collector = 'on'\nlog_truncate_on_rotation = 'on'\nlog_filename = 'postgresql-%a.log'\nlog_line_prefix = '%m - %l - %p - %h - %u@%d '\nlog_directory = 'pg_log'\nprimary_conninfo = 'user=postgres passfile=''\/home\/postgres\/.pgpass'' port=5433 sslmode=prefer sslcompression=0 target_session_attrs=any'\n<\/pre>\n<p>But what about timeline and all the other settings? All these have been merged into the normal postgresql.[auto.]conf file as well:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\npostgres=# select name,setting from pg_settings where name like '%recovery%';\n           name            | setting \n---------------------------+---------\n recovery_end_command      | \n recovery_min_apply_delay  | 0\n recovery_target           | \n recovery_target_action    | pause\n recovery_target_inclusive | on\n recovery_target_lsn       | \n recovery_target_name      | \n recovery_target_time      | \n recovery_target_timeline  | \n recovery_target_xid       | \n trace_recovery_messages   | log\n(11 rows)\n<\/pre>\n<p>So all the settings can now be set in one file. The remaining question is: How does the instance then know when it needs to go into recovery? Before PostgreSQL 12 the presence of the recovery.conf file told the instance to go into recovery. Now, that the file is gone there must be a new mechanism and that is the &#8220;standby.signal&#8221; file in case of a replica:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgbox:\/home\/postgres\/ [PGDEV] cat \/var\/tmp\/pg12s\/standby.signal \npostgres@pgbox:\/home\/postgres\/ [PGDEV] \n<\/pre>\n<p>That file is empty and just tells PostgreSQL to go into recovery and then process the recovery related parameters which are now in postgresql.[auto.]conf. The same is true when a recovery is requested: The signal file in that case is &#8220;recovery.signal&#8221;.<\/p>\n<p>All in all that means there is one configuration file less to take care of and that is good. The question will be on how fast all the third party tools will catch up with that change.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Traditionally everything which is related to recovery in PostgreSQL goes to recovery.conf. This is not only true for recovery settings but also for turning an instance into a replica which follows a master. Some days ago this commit landed in the PostgreSQL git repository. What that effectively means is, that there will be no more [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[77],"type_dbi":[],"class_list":["post-12077","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","tag-postgresql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>No more recovery.conf in PostgreSQL 12 - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/no-more-recovery-conf-in-postgresql-12\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"No more recovery.conf in PostgreSQL 12\" \/>\n<meta property=\"og:description\" content=\"Traditionally everything which is related to recovery in PostgreSQL goes to recovery.conf. This is not only true for recovery settings but also for turning an instance into a replica which follows a master. Some days ago this commit landed in the PostgreSQL git repository. What that effectively means is, that there will be no more [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/no-more-recovery-conf-in-postgresql-12\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-11-28T18:41:05+00:00\" \/>\n<meta name=\"author\" content=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/no-more-recovery-conf-in-postgresql-12\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/no-more-recovery-conf-in-postgresql-12\\\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"No more recovery.conf in PostgreSQL 12\",\"datePublished\":\"2018-11-28T18:41:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/no-more-recovery-conf-in-postgresql-12\\\/\"},\"wordCount\":373,\"commentCount\":0,\"keywords\":[\"PostgreSQL\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/no-more-recovery-conf-in-postgresql-12\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/no-more-recovery-conf-in-postgresql-12\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/no-more-recovery-conf-in-postgresql-12\\\/\",\"name\":\"No more recovery.conf in PostgreSQL 12 - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2018-11-28T18:41:05+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/no-more-recovery-conf-in-postgresql-12\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/no-more-recovery-conf-in-postgresql-12\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/no-more-recovery-conf-in-postgresql-12\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"No more recovery.conf in PostgreSQL 12\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\\\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/westermanndanie\"],\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/daniel-westermann\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"No more recovery.conf in PostgreSQL 12 - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/no-more-recovery-conf-in-postgresql-12\/","og_locale":"en_US","og_type":"article","og_title":"No more recovery.conf in PostgreSQL 12","og_description":"Traditionally everything which is related to recovery in PostgreSQL goes to recovery.conf. This is not only true for recovery settings but also for turning an instance into a replica which follows a master. Some days ago this commit landed in the PostgreSQL git repository. What that effectively means is, that there will be no more [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/no-more-recovery-conf-in-postgresql-12\/","og_site_name":"dbi Blog","article_published_time":"2018-11-28T18:41:05+00:00","author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/no-more-recovery-conf-in-postgresql-12\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/no-more-recovery-conf-in-postgresql-12\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"No more recovery.conf in PostgreSQL 12","datePublished":"2018-11-28T18:41:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/no-more-recovery-conf-in-postgresql-12\/"},"wordCount":373,"commentCount":0,"keywords":["PostgreSQL"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/no-more-recovery-conf-in-postgresql-12\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/no-more-recovery-conf-in-postgresql-12\/","url":"https:\/\/www.dbi-services.com\/blog\/no-more-recovery-conf-in-postgresql-12\/","name":"No more recovery.conf in PostgreSQL 12 - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2018-11-28T18:41:05+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/no-more-recovery-conf-in-postgresql-12\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/no-more-recovery-conf-in-postgresql-12\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/no-more-recovery-conf-in-postgresql-12\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"No more recovery.conf in PostgreSQL 12"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12077","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=12077"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12077\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=12077"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=12077"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=12077"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=12077"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}