{"id":2306,"date":"2016-06-29T16:22:51","date_gmt":"2016-06-29T16:22:51","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2306"},"modified":"2025-06-13T20:59:43","modified_gmt":"2025-06-14T03:59:43","slug":"introducing-couchbase-net-sdk-2-3-0-and-2-3-1","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/","title":{"rendered":"Introducing Couchbase .NET SDK 2.3.0 and 2.3.1"},"content":{"rendered":"<h2 id=\"introducing-couchbase-net-sdk-2-3-0-and-2-3-1\">Introducing Couchbase .NET SDK 2.3.0 and 2.3.1<\/h2>\n<p>Today we are releasing version 2.3.0 of the official Couchbase SDK for .NET languages! This is a minor release and includes support for all new Couchbase Server 4.5 features including Full Text Search (FTS), the new Sub-Document API, RYOW and more!<\/p>\n<p>Note that 2.3.0 was released earlier this month and 2.3.1 is a follow-up which contains one <a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1147\/\">important patch<\/a> for RYOW.<\/p>\n<h2 id=\"what-is-in-this-release-\">What is in this release?<\/h2>\n<p>The focus of this release are SDK support for Couchbase Server 4.5 features (which was release today!). Since we have already blogged about each of these features when they were in Developer Preview, I will refer to those posts:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/new-release-couchbase-.net-sdk-2.2.8-w-fts-developer-preview\/\">Full Text Search (FTS)<\/a>\u00a0&#8211; Developer Preview in Couchbase 4.5<\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/developer-preview-of-new-sub-document-api-included-w-2.2.6-release-of-couchbase-.net-sdk\/\">Sub-Document API<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/new-to-couchbase-4.5-atplus\/\">Read Your Own Write(RYOW)<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/couchbase-.net-sdk-v2.2.7-w-developer-preview-of-index-management-now-available\/\">Index Management API<\/a><\/li>\n<\/ul>\n<p>In addition to the features above, a number of improvements and bug fixes have also made it into this release. You can read the full-release notes below.<\/p>\n<h2 id=\"release-notes\">Release Notes<\/h2>\n<p>Release Notes &#8211; Couchbase .NET client library &#8211; Version 2.3.0 and 2.3.1<\/p>\n<ul>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1096\">NCBC-1096<\/a>] &#8211; Make Configuration system more abstract to support JSON configs<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1114\">NCBC-1114<\/a>] &#8211; Refactor System.Timers.Timer to System.Threading.Timer<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1110\">NCBC-1110<\/a>] &#8211; GetFromReplica times out if key does not exist<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1117\">NCBC-1117<\/a>] &#8211; HttpServerConfig Doesn&#8217;t Validate Server Certificate<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1119\">NCBC-1119<\/a>] &#8211; MutationTokens Do Not Work Because BucketRef Is Always Null<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1120\">NCBC-1120<\/a>] &#8211; Cannot Set UseEnhancedDurability To True Without Defining A ConnectionPool<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1121\">NCBC-1121<\/a>] &#8211; RYOW ConsistentWith Doesn&#8217;t Function For N1QL Queries<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1131\">NCBC-1131<\/a>] &#8211; Regression causes HttpStreamingProvider to auth invalid password<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1135\">NCBC-1135<\/a>] &#8211; Use Endpoint instead of Uri for SslStream.Authenticate<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1136\">NCBC-1136<\/a>] &#8211; Regression &#8211; MutationToken are not set when UseEnhancedDurabity is true<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1013\">NCBC-1013<\/a>] &#8211; Add certificate validation to SslConnection<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1051\">NCBC-1051<\/a>] &#8211; Investigate making IO layer pluggable via code configuration<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1079\">NCBC-1079<\/a>] &#8211; Add streaming JSON parser for N1QL and Views<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1122\">NCBC-1122<\/a>] &#8211; Add IgnoreRemoteCertificateNameMismatch config flag to ignore TLS hostname validation<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-769\">NCBC-769<\/a>] &#8211; Ensure support for &#8220;Consistency Parameters&#8221; is implemented correctly<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1105\">NCBC-1105<\/a>] &#8211; Add integration tests for AT_PLUS<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1130\">NCBC-1130<\/a>] &#8211; Make SslConnection use ClientConfiguration.BufferSize<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1137\">NCBC-1137<\/a>] &#8211; Auth error causes BootstrapException to be thrown<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1140\">NCBC-1140<\/a>] &#8211; If CarrierPublicationProvider is disposed do not reset timer<\/li>\n<li>[<a href=\"https:\/\/issues.couchbase.com\/browse\/NCBC-1147\">NCBC-1147<\/a>] &#8211; MutationToken uses wrong bucket &#8211; impacts RYOW<\/li>\n<\/ul>\n<h2 id=\"how-to-get-it\">How to get it<\/h2>\n<ul>\n<li>Using <a href=\"https:\/\/www.nuget.org\/packages\/CouchbaseNetClient\/2.3.1\">NuGet<\/a> the package manager.<\/li>\n<li>Download and build the <a href=\"https:\/\/github.com\/couchbase\/couchbase-net-client\/tree\/2.3.1\">source<\/a>.<\/li>\n<li>Download the <a href=\"https:\/\/s3.amazonaws.com\/packages.couchbase.com\/clients\/net\/2.3\/Couchbase-Net-Client-2.3.1.zip\">binaries<\/a>.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Introducing Couchbase .NET SDK 2.3.0 and 2.3.1 Today we are releasing version 2.3.0 of the official Couchbase SDK for .NET languages! This is a minor release and includes support for all new Couchbase Server 4.5 features including Full Text Search [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,2165],"tags":[1640],"ppma_author":[8970],"class_list":["post-2306","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-full-text-search","tag-couchbase-4-5"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Introducing Couchbase .NET SDK 2.3.0 and 2.3.1 - The Couchbase 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.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducing Couchbase .NET SDK 2.3.0 and 2.3.1\" \/>\n<meta property=\"og:description\" content=\"Introducing Couchbase .NET SDK 2.3.0 and 2.3.1 Today we are releasing version 2.3.0 of the official Couchbase SDK for .NET languages! This is a minor release and includes support for all new Couchbase Server 4.5 features including Full Text Search [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-06-29T16:22:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:59:43+00:00\" \/>\n<meta name=\"author\" content=\"Jeff Morris, Senior Software Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@jeffrysmorris\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeff Morris, Senior Software Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/\"},\"author\":{\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341\"},\"headline\":\"Introducing Couchbase .NET SDK 2.3.0 and 2.3.1\",\"datePublished\":\"2016-06-29T16:22:51+00:00\",\"dateModified\":\"2025-06-14T03:59:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/\"},\"wordCount\":380,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Couchbase 4.5\"],\"articleSection\":[\".NET\",\"Full-Text Search\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/\",\"name\":\"Introducing Couchbase .NET SDK 2.3.0 and 2.3.1 - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-06-29T16:22:51+00:00\",\"dateModified\":\"2025-06-14T03:59:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducing Couchbase .NET SDK 2.3.0 and 2.3.1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341\",\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/73188ee2831025d81740e12e1ed80812\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g\",\"caption\":\"Jeff Morris, Senior Software Engineer, Couchbase\"},\"description\":\"Jeff Morris is a Senior Software Engineer at Couchbase. Prior to joining Couchbase, Jeff spent six years at Source Interlink as an Enterprise Web Architect. Jeff is responsible for the development of Couchbase SDKs and how to integrate with N1QL (query language).\",\"sameAs\":[\"https:\/\/x.com\/jeffrysmorris\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/jeff-morris\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Introducing Couchbase .NET SDK 2.3.0 and 2.3.1 - The Couchbase 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.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/","og_locale":"en_US","og_type":"article","og_title":"Introducing Couchbase .NET SDK 2.3.0 and 2.3.1","og_description":"Introducing Couchbase .NET SDK 2.3.0 and 2.3.1 Today we are releasing version 2.3.0 of the official Couchbase SDK for .NET languages! This is a minor release and includes support for all new Couchbase Server 4.5 features including Full Text Search [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-06-29T16:22:51+00:00","article_modified_time":"2025-06-14T03:59:43+00:00","author":"Jeff Morris, Senior Software Engineer, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@jeffrysmorris","twitter_misc":{"Written by":"Jeff Morris, Senior Software Engineer, Couchbase","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/"},"author":{"name":"Jeff Morris, Senior Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341"},"headline":"Introducing Couchbase .NET SDK 2.3.0 and 2.3.1","datePublished":"2016-06-29T16:22:51+00:00","dateModified":"2025-06-14T03:59:43+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/"},"wordCount":380,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Couchbase 4.5"],"articleSection":[".NET","Full-Text Search"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/","url":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/","name":"Introducing Couchbase .NET SDK 2.3.0 and 2.3.1 - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-06-29T16:22:51+00:00","dateModified":"2025-06-14T03:59:43+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-3-0-and-2-3-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Introducing Couchbase .NET SDK 2.3.0 and 2.3.1"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341","name":"Jeff Morris, Senior Software Engineer, Couchbase","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/73188ee2831025d81740e12e1ed80812","url":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","caption":"Jeff Morris, Senior Software Engineer, Couchbase"},"description":"Jeff Morris is a Senior Software Engineer at Couchbase. Prior to joining Couchbase, Jeff spent six years at Source Interlink as an Enterprise Web Architect. Jeff is responsible for the development of Couchbase SDKs and how to integrate with N1QL (query language).","sameAs":["https:\/\/x.com\/jeffrysmorris"],"url":"https:\/\/www.couchbase.com\/blog\/author\/jeff-morris\/"}]}},"authors":[{"term_id":8970,"user_id":21,"is_guest":0,"slug":"jeff-morris","display_name":"Jeff Morris, Senior Software Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","author_category":"","last_name":"Jeff Morris, Senior Software Engineer, Couchbase","first_name":"Jeff","job_title":"","user_url":"","description":"Jeff Morris is a Senior Software Engineer at Couchbase. Prior to joining Couchbase, Jeff spent six years at Source Interlink as an Enterprise Web Architect. Jeff is responsible for the development of Couchbase SDKs and how to integrate with N1QL (query language)."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2306","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=2306"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2306\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=2306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=2306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=2306"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=2306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}