{"id":785,"date":"2009-08-11T11:59:34","date_gmt":"2009-08-11T10:59:34","guid":{"rendered":"http:\/\/cyberelk.net\/tim\/?p=785"},"modified":"2014-05-20T09:07:28","modified_gmt":"2014-05-20T08:07:28","slug":"policykit-and-printing","status":"publish","type":"post","link":"https:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/","title":{"rendered":"PolicyKit and printing"},"content":{"rendered":"<p><a href=\"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2009\/08\/gtk-dialog-authentication-100.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"794\" data-permalink=\"https:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/gtk-dialog-authentication-100\/\" data-orig-file=\"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2009\/08\/gtk-dialog-authentication-100.png\" data-orig-size=\"100,100\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"gtk-dialog-authentication-100\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2009\/08\/gtk-dialog-authentication-100.png\" class=\"alignleft size-full wp-image-794\" title=\"gtk-dialog-authentication-100\" src=\"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2009\/08\/gtk-dialog-authentication-100.png\" alt=\"gtk-dialog-authentication-100\" width=\"100\" height=\"100\" \/><\/a>The <a href=\"http:\/\/docs.fedoraproject.org\/release-notes\/f11\/\">latest release of Fedora<\/a> allows more flexibility with configuring print queues and managing print jobs.  This is because it is now able to use <a href=\"http:\/\/www.freedesktop.org\/wiki\/Software\/PolicyKit\">PolicyKit<\/a> to do these things, which means you get to choose when and whether users should be prompted for authentication when performing administration tasks on printers or jobs.  The implementation is slightly tricky, so I&#8217;ll explain the details.<\/p>\n<p><!--more--><\/p>\n<p>Before PolicyKit awareness was added there was already adjustable policy controlling IPP operations.\u00a0 This &#8216;CUPS policy&#8217; mechanism is provided by the CUPS scheduler, <code>cupsd<\/code>, and its configuration is in the file <code>\/etc\/cups\/cupsd.conf<\/code>.\u00a0 This controls which IP addresses are allowed to access various HTTP locations corresponding to the CUPS configuration actions (such as <code>http:\/\/cups-server:631\/admin<\/code>), and which IP address, users, groups, and classes of users can carry out the various IPP operations such as cancelling jobs.\u00a0 It also specifies whether and how users must authenticate themselves.<\/p>\n<p>This CUPS policy is great for managing CUPS servers remotely but is not consistent with the method used by the rest of the desktop environment, PolicyKit.\u00a0 Although the CUPS policy can be adjusted using a fairly easy to use list of check-boxes (available in both the CUPS web interface and via <a href=\"https:\/\/cyberelk.net\/tim\/software\/system-config-printer\/\">System\u2192Administration\u2192Printing<\/a>), it is not fine-grained enough to be as useful as PolicyKit can be.\u00a0 The CUPS policy itself is very fine-grained, but this power is only unleashed by editing configuration files.<\/p>\n<p>With PolicyKit the policy can be adjusted easily using a graphical tool, to make it easier to perform certain tasks for those needing to do so.\u00a0 The intention is for <a href=\"http:\/\/spins.fedoraproject.org\/\">Fedora &#8220;spins&#8221;<\/a> to have appropriate default policies depending on their target audience, so that a desktop spin might allow the active console user to perform all administration tasks without asking for authentication for example.<\/p>\n<p>We have two types of policy then, CUPS policy and PolicyKit policy, for controlling print administration tasks.\u00a0 The CUPS policy in Fedora is unmodified from the upstream CUPS releases, and is fairly restrictive.\u00a0 The default PolicyKit policy for printing administration in Fedora is also fairly restrictive, and the overall policy is only as restrictive as the most relaxed of the two.<\/p>\n<p>The implementation consists of a package called <code>cups-pk-helper<\/code> (created by <a href=\"http:\/\/www.vuntz.net\/journal\/\">Vincent Untz<\/a>) which provides the D-Bus system service which is the mechanism for the policy &#8212; it performs the administration tasks on behalf of its clients by talking to the CUPS scheduler using IPP.\u00a0 It runs as root so the default CUPS policy allows it to perform all administration tasks.\u00a0 It can authenticate itself as root by connecting over a UNIX domain socket (CUPS will use <a href=\"https:\/\/cyberelk.net\/tim\/2007\/03\/08\/cups-unix-domain-sockets-authentication\/\">peer credentials<\/a> to discover the requesting user) or, if that is not possible, by proving that it can read a certificate file only readable by root.<\/p>\n<p>At present the only client for this system service is the printer configuration tool accessible from System\u2192Administration\u2192Printing.\u00a0 The CUPS web interface and command line tools only use IPP directly.<\/p>\n<p>How fine-grained is the policy?\u00a0 Here are the defined operations:<\/p>\n<ul>\n<li>Set a printer as system default printer<\/li>\n<li>Enable\/disable a printer<\/li>\n<li>Add\/remove\/edit a local printer<\/li>\n<li>Add\/remove\/edit a remote printer<\/li>\n<li>Add\/remove\/edit a class<\/li>\n<li>Get\/set server settings<\/li>\n<li>Restart\/cancel\/edit a job you own<\/li>\n<li>Restart\/cancel\/edit a job owned by another user<\/li>\n<li>Get the list of available devices (available in Fedora 11 <a href=\"https:\/\/bugzilla.redhat.com\/show_bug.cgi?id=516713\">soon<\/a>)<\/li>\n<\/ul>\n<p>For each of these operations, the policy depends on who is attempting to carry out the operation:<\/p>\n<ul>\n<li>Someone on the active console<\/li>\n<li>Someone on the console but inactive<\/li>\n<li>Anyone else<\/li>\n<\/ul>\n<p>For each of these groups of users, the policy can be that they are disallowed altogether, that they are allowed without authentication, or that they require authentication either as themselves or with the root password.\u00a0 If authentication is required it can be:<\/p>\n<ul>\n<li>Required every time<\/li>\n<li>Required once but not needed for the rest of the time the configuration program is running<\/li>\n<li>Required once per session<\/li>\n<li>Required once and not again<\/li>\n<\/ul>\n<p>Here is a screenshot of the program used for editing this policy, accessible from System\u2192Preferences\u2192Authorizations:<\/p>\n<p><a href=\"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2009\/08\/polkit.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"791\" data-permalink=\"https:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/polkit\/\" data-orig-file=\"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2009\/08\/polkit.png\" data-orig-size=\"450,406\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"Editing policy\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2009\/08\/polkit.png\" class=\"alignnone size-full wp-image-791\" title=\"Editing policy\" src=\"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2009\/08\/polkit.png\" alt=\"Editing policy\" width=\"450\" height=\"406\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The latest release of Fedora allows more flexibility with configuring print queues and managing print jobs. This is because it is now able to use PolicyKit to do these things, which means you get to choose when and whether users should be prompted for authentication when performing administration tasks on printers or jobs. The implementation [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[3],"tags":[33,27,64,28,96,50],"class_list":["post-785","post","type-post","status-publish","format-standard","hentry","category-software","tag-cups","tag-fedora","tag-policykit","tag-printing","tag-software","tag-system-config-printer"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PolicyKit and printing - PRINT HEAD<\/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:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PolicyKit and printing - PRINT HEAD\" \/>\n<meta property=\"og:description\" content=\"The latest release of Fedora allows more flexibility with configuring print queues and managing print jobs. This is because it is now able to use PolicyKit to do these things, which means you get to choose when and whether users should be prompted for authentication when performing administration tasks on printers or jobs. The implementation [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/\" \/>\n<meta property=\"og:site_name\" content=\"PRINT HEAD\" \/>\n<meta property=\"article:published_time\" content=\"2009-08-11T10:59:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-05-20T08:07:28+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2009\/08\/gtk-dialog-authentication-100.png\" \/>\n<meta name=\"author\" content=\"Tim Waugh\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tim Waugh\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2009\\\/08\\\/11\\\/policykit-and-printing\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2009\\\/08\\\/11\\\/policykit-and-printing\\\/\"},\"author\":{\"name\":\"Tim Waugh\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/#\\\/schema\\\/person\\\/23b749f30a67f1b1c6af17024fc94bf6\"},\"headline\":\"PolicyKit and printing\",\"datePublished\":\"2009-08-11T10:59:34+00:00\",\"dateModified\":\"2014-05-20T08:07:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2009\\\/08\\\/11\\\/policykit-and-printing\\\/\"},\"wordCount\":673,\"publisher\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/#\\\/schema\\\/person\\\/23b749f30a67f1b1c6af17024fc94bf6\"},\"image\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2009\\\/08\\\/11\\\/policykit-and-printing\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2009\\\/08\\\/gtk-dialog-authentication-100.png\",\"keywords\":[\"cups\",\"fedora\",\"PolicyKit\",\"printing\",\"Software\",\"system-config-printer\"],\"articleSection\":[\"Software\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2009\\\/08\\\/11\\\/policykit-and-printing\\\/\",\"url\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2009\\\/08\\\/11\\\/policykit-and-printing\\\/\",\"name\":\"PolicyKit and printing - PRINT HEAD\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2009\\\/08\\\/11\\\/policykit-and-printing\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2009\\\/08\\\/11\\\/policykit-and-printing\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2009\\\/08\\\/gtk-dialog-authentication-100.png\",\"datePublished\":\"2009-08-11T10:59:34+00:00\",\"dateModified\":\"2014-05-20T08:07:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2009\\\/08\\\/11\\\/policykit-and-printing\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2009\\\/08\\\/11\\\/policykit-and-printing\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2009\\\/08\\\/11\\\/policykit-and-printing\\\/#primaryimage\",\"url\":\"http:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2009\\\/08\\\/gtk-dialog-authentication-100.png\",\"contentUrl\":\"http:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2009\\\/08\\\/gtk-dialog-authentication-100.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/2009\\\/08\\\/11\\\/policykit-and-printing\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PolicyKit and printing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/#website\",\"url\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/\",\"name\":\"PRINT HEAD\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/#\\\/schema\\\/person\\\/23b749f30a67f1b1c6af17024fc94bf6\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/#\\\/schema\\\/person\\\/23b749f30a67f1b1c6af17024fc94bf6\",\"name\":\"Tim Waugh\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/printhead.png\",\"url\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/printhead.png\",\"contentUrl\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/printhead.png\",\"width\":731,\"height\":140,\"caption\":\"Tim Waugh\"},\"logo\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/printhead.png\"},\"sameAs\":[\"http:\\\/\\\/cyberelk.net\\\/tim\"],\"url\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/author\\\/twaugh\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PolicyKit and printing - PRINT HEAD","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:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/","og_locale":"en_GB","og_type":"article","og_title":"PolicyKit and printing - PRINT HEAD","og_description":"The latest release of Fedora allows more flexibility with configuring print queues and managing print jobs. This is because it is now able to use PolicyKit to do these things, which means you get to choose when and whether users should be prompted for authentication when performing administration tasks on printers or jobs. The implementation [&hellip;]","og_url":"https:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/","og_site_name":"PRINT HEAD","article_published_time":"2009-08-11T10:59:34+00:00","article_modified_time":"2014-05-20T08:07:28+00:00","og_image":[{"url":"http:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2009\/08\/gtk-dialog-authentication-100.png","type":"","width":"","height":""}],"author":"Tim Waugh","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Tim Waugh","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/#article","isPartOf":{"@id":"https:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/"},"author":{"name":"Tim Waugh","@id":"https:\/\/cyberelk.net\/tim\/#\/schema\/person\/23b749f30a67f1b1c6af17024fc94bf6"},"headline":"PolicyKit and printing","datePublished":"2009-08-11T10:59:34+00:00","dateModified":"2014-05-20T08:07:28+00:00","mainEntityOfPage":{"@id":"https:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/"},"wordCount":673,"publisher":{"@id":"https:\/\/cyberelk.net\/tim\/#\/schema\/person\/23b749f30a67f1b1c6af17024fc94bf6"},"image":{"@id":"https:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/#primaryimage"},"thumbnailUrl":"http:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2009\/08\/gtk-dialog-authentication-100.png","keywords":["cups","fedora","PolicyKit","printing","Software","system-config-printer"],"articleSection":["Software"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/","url":"https:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/","name":"PolicyKit and printing - PRINT HEAD","isPartOf":{"@id":"https:\/\/cyberelk.net\/tim\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/#primaryimage"},"image":{"@id":"https:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/#primaryimage"},"thumbnailUrl":"http:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2009\/08\/gtk-dialog-authentication-100.png","datePublished":"2009-08-11T10:59:34+00:00","dateModified":"2014-05-20T08:07:28+00:00","breadcrumb":{"@id":"https:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/#primaryimage","url":"http:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2009\/08\/gtk-dialog-authentication-100.png","contentUrl":"http:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2009\/08\/gtk-dialog-authentication-100.png"},{"@type":"BreadcrumbList","@id":"https:\/\/cyberelk.net\/tim\/2009\/08\/11\/policykit-and-printing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cyberelk.net\/tim\/"},{"@type":"ListItem","position":2,"name":"PolicyKit and printing"}]},{"@type":"WebSite","@id":"https:\/\/cyberelk.net\/tim\/#website","url":"https:\/\/cyberelk.net\/tim\/","name":"PRINT HEAD","description":"","publisher":{"@id":"https:\/\/cyberelk.net\/tim\/#\/schema\/person\/23b749f30a67f1b1c6af17024fc94bf6"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cyberelk.net\/tim\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/cyberelk.net\/tim\/#\/schema\/person\/23b749f30a67f1b1c6af17024fc94bf6","name":"Tim Waugh","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2023\/01\/printhead.png","url":"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2023\/01\/printhead.png","contentUrl":"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2023\/01\/printhead.png","width":731,"height":140,"caption":"Tim Waugh"},"logo":{"@id":"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2023\/01\/printhead.png"},"sameAs":["http:\/\/cyberelk.net\/tim"],"url":"https:\/\/cyberelk.net\/tim\/author\/twaugh\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pnnS2-cF","_links":{"self":[{"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/posts\/785","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/comments?post=785"}],"version-history":[{"count":14,"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/posts\/785\/revisions"}],"predecessor-version":[{"id":1047,"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/posts\/785\/revisions\/1047"}],"wp:attachment":[{"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/media?parent=785"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/categories?post=785"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/tags?post=785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}