{"id":5939,"date":"2023-04-24T12:38:20","date_gmt":"2023-04-24T12:38:20","guid":{"rendered":"https:\/\/www.solutionstreet.com\/blog\/?p=5939"},"modified":"2023-04-24T12:38:29","modified_gmt":"2023-04-24T12:38:29","slug":"using-sbom-to-kiss","status":"publish","type":"post","link":"https:\/\/www.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/","title":{"rendered":"Using SBOM to KISS!"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.solutionstreet.com\/blog\/wp-content\/uploads\/2023\/04\/gridtitle-1024x576.png\" alt=\"\" class=\"wp-image-5940\" srcset=\"https:\/\/www.solutionstreet.com\/blog\/wp-content\/uploads\/2023\/04\/gridtitle-1024x576.png 1024w, https:\/\/www.solutionstreet.com\/blog\/wp-content\/uploads\/2023\/04\/gridtitle-300x169.png 300w, https:\/\/www.solutionstreet.com\/blog\/wp-content\/uploads\/2023\/04\/gridtitle-768x432.png 768w, https:\/\/www.solutionstreet.com\/blog\/wp-content\/uploads\/2023\/04\/gridtitle.png 1152w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Everyone&#8217;s favorite TV show included one of my recent favorite acronyms &#8211; KISS &#8211; Keep It Simple, Smarty pants \u2014 Ted Lasso. In software construction we use this acronym often. Mainly because it is very easy to overcomplicate our systems due to the plethora of libraries, tools, utilities, and services available. Many of these are free, or at least appear to be free at first glance.&nbsp;<\/p>\n\n\n\n<p>I am a member of the awesome <a href=\"https:\/\/www.chieftechnologyofficer.org\/\" target=\"blank\" rel=\"noopener\">DC CTO Roundtable<\/a> and at a recent event we had a couple of speakers talk to us about the Software Bill of Materials (SBOM); what it is and why you would want to use it. An SBOM is an inventory of the libraries, tools, utilities and services that your application is using. If you are not a software engineer or have not been around software construction, you may not realize that 99% of the time when we build stuff, we do not build everything from scratch. We make use of (or reuse) whatever we can to save time, money and leverage best-of-breed tools and services. Think about building a house &#8211; your builder doesn\u2019t hand-build everything that is part of the house, rather they source the materials and have as much of it \u201cprebuilt\u201d by others in the most cost effective way. So house builders are really \u201cassemblers\u201d that put everything together and make a house. Today\u2019s software engineers work the same way. We do some custom stuff, but much of what we are building is done leveraging the work of others.<\/p>\n\n\n\n<p>In the SBOM world there are mainly two competing standards, one from the Open Worldwide Application Security Project<sup>\u00ae<\/sup> (OWASP) foundation called <a href=\"https:\/\/owasp.org\/www-project-cyclonedx\/\" target=\"blank\" rel=\"noopener\">CycloneDX<\/a> and the other from the <a href=\"https:\/\/www.linuxfoundation.org\/press\/press-release\/linux-foundation-announces-software-bill-of-materials-sbom-industry-standard-research-training-and-tools-to-improve-cybersecurity-practices\" target=\"blank\" rel=\"noopener\">Linux Foundation<\/a>. The U.S. government cares about this (I assume mainly for security reasons) and is trying to keep the two standards compatible.<\/p>\n\n\n\n<p>Both options include tools to help you generate and manage your SBOM, and then feed it into other tools that include security analysis for vulnerabilities as well as risk analysis and license exposure. Historically, SBOM has been mostly focused on on-prem solutions, but it is starting to adapt to be more comprehensive in the cloud environments.&nbsp;<\/p>\n\n\n\n<p>So now that you know what an SBOM is, let\u2019s get back to the KISS principle and how we can leverage SBOMs to KISS for our software applications.&nbsp;<\/p>\n\n\n\n<p>At Solution Street, we have an internal application that we built to process our timesheets and run our internal corporate intranet. It is built using Ruby on Rails. I wanted to get a sense of how many libraries (called gems in Ruby) we were using for our application. Rails makes it easy to see this; there are two files, one called Gemfile and the other called Gemfile.lock (for you node developers out there, this is analogous to package.json and package-lock.json). The Gemfile is the list of direct libraries you are using, including the versions. Looking at our Gemfile we use only about 30 libraries directly for our app and an additional handful for development and testing only. The Gemfile.lock is the derived file that shows the ones we use and all the libraries that each library uses. For example, when referencing the \u201cRails\u201d gem and its version, it references about a dozen libraries it is made up of, and each of those reference other libraries. When you look at this full file, over 300 hundred libraries are referenced here. Each of these libraries could have security vulnerabilities, or hidden license requirements that we are unaware of..WOW this is getting complicated in a hurry!<\/p>\n\n\n\n<p>There are two things we can do to KISS and help reduce our complexity and exposure here:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Reduction<\/strong> &#8211; First we should look at each library we use and figure out if it is really needed. Are we even using it? (some frameworks come with a utility to discover recent usage, \u201cgem stale\u201d can be used in the ruby world) Could we write a dozen lines of code to solve the same problem? How much value is the library providing? How many libraries does it use, if it is very promiscuous, are we already using these libraries elsewhere in our system, or is this the only reason we need it? If the library is open source, maybe we can suggest to the team that maintains it ways to reduce complexities and dependencies and even contribute to their source? Otherwise, maybe we can remove the library?<\/li>\n\n\n\n<li><strong>Management<\/strong> &#8211; This is where SBOM can help us. For our timesheet app, I created its SBOM using CycloneDX in about 1 minute; it was very easy. Looking at the bom.xml file it generated (see Figure 1 below), immediately I was able to see all the license types that each library required. There are some licenses that require payment to use commercially or even require you to release your source code if you improve on their library. License management is a topic for another day, but you can read some about it <a href=\"https:\/\/en.wikipedia.org\/wiki\/Software_license\" target=\"blank\" rel=\"noopener\">here<\/a>. In addition to license management, the SBOM can be fed into many different security <a href=\"https:\/\/cyclonedx.org\/tool-center\/\" target=\"blank\" rel=\"noopener\">tools<\/a> that can report on vulnerabilities in your applications libraries.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/uRXf1dJF1i7HFhSKn4DtunBSB7nUpQubiACa73cB4TEFURJ7Lj-okL5h5XVnZEQpJG6NryhyC_0pTXVT0pEIY9greUhRoiilgLpfRYc3IG5s1SpglsXiqn4pXcT-yMO6rXzZ9zfZjfYUF6rkMUGGlmA\" alt=\"\"\/><\/figure>\n\n\n\n<p><em>Figure 1: The top of our bom.xml file showing a couple of the components used<\/em><\/p>\n\n\n\n<p>So back to our timesheet application, we need to dig deep and look into options to reduce the number of libraries being used to help with Reduction. I also fed our bom.xml file into a scanner tool called \u201c<a href=\"https:\/\/google.github.io\/osv-scanner\/\" target=\"blank\" rel=\"noopener\">osv-scanner<\/a>\u201d (open source scanner from google) to see if we had any vulnerabilities that needed to be addressed (see Figure 2). Fortunately my team has done a good job at keeping up with patches and we are in good shape there! Note if I had issues, osv-scanner would include the url of the CVE along with the ecosystem and package\/version it found it in.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/80mpU3ukIC381uxEnpQ9pavitc32HxOJJOl3BX1OTmkayuxWUgDtL-_8oivCh1sMW5O4jcNLjnBicQNEp0wPOUR9pc9jXu5fJfcoY_7jtSOCp1Gn2DAkT3ES1bXteuxOnLu9ZXPulmKBYwB1hRmstcM\" alt=\"\"\/><\/figure>\n\n\n\n<p><em>Figure 2: Results from OSV Scanner run<\/em><\/p>\n\n\n\n<p>Building software while making use of open source and 3rd party libraries can save time and money, but can also increase complexity and security exposure. In this short article we have shared how SBOM, related tools, and reduction in complexity can be used to KISS.&nbsp;<\/p>\n\n\n\n<p>If you need help on your next Software construction project, or are concerned about whether or not anyone is thinking about security vulnerabilities in your Java, .NET, Rails, or Django applications, please drop us a <a href=\"https:\/\/solutionstreet.com\" target=\"blank\" rel=\"noopener\">line<\/a>!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Everyone&#8217;s favorite TV show included one of my recent favorite acronyms &#8211; KISS &#8211; Keep It Simple, Smarty pants \u2014 Ted Lasso. In software construction we use this acronym often. Mainly because it is very easy to overcomplicate our systems due to the plethora of libraries, tools, utilities, and services available. Many of these are [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5939","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Using SBOM to KISS! - Solution Street 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.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using SBOM to KISS! - Solution Street Blog\" \/>\n<meta property=\"og:description\" content=\"Everyone&#8217;s favorite TV show included one of my recent favorite acronyms &#8211; KISS &#8211; Keep It Simple, Smarty pants \u2014 Ted Lasso. In software construction we use this acronym often. Mainly because it is very easy to overcomplicate our systems due to the plethora of libraries, tools, utilities, and services available. Many of these are [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/\" \/>\n<meta property=\"og:site_name\" content=\"Solution Street Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-24T12:38:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-04-24T12:38:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.solutionstreet.com\/blog\/wp-content\/uploads\/2023\/04\/gridtitle-1024x576.png\" \/>\n<meta name=\"author\" content=\"Peggy Frankel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Peggy Frankel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/2023\\\/04\\\/24\\\/using-sbom-to-kiss\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/2023\\\/04\\\/24\\\/using-sbom-to-kiss\\\/\"},\"author\":{\"name\":\"Peggy Frankel\",\"@id\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/#\\\/schema\\\/person\\\/c4846451eff30e9514b534b2a2e01696\"},\"headline\":\"Using SBOM to KISS!\",\"datePublished\":\"2023-04-24T12:38:20+00:00\",\"dateModified\":\"2023-04-24T12:38:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/2023\\\/04\\\/24\\\/using-sbom-to-kiss\\\/\"},\"wordCount\":1072,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/2023\\\/04\\\/24\\\/using-sbom-to-kiss\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/gridtitle-1024x576.png\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/2023\\\/04\\\/24\\\/using-sbom-to-kiss\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/2023\\\/04\\\/24\\\/using-sbom-to-kiss\\\/\",\"url\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/2023\\\/04\\\/24\\\/using-sbom-to-kiss\\\/\",\"name\":\"Using SBOM to KISS! - Solution Street Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/2023\\\/04\\\/24\\\/using-sbom-to-kiss\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/2023\\\/04\\\/24\\\/using-sbom-to-kiss\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/gridtitle-1024x576.png\",\"datePublished\":\"2023-04-24T12:38:20+00:00\",\"dateModified\":\"2023-04-24T12:38:29+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/#\\\/schema\\\/person\\\/c4846451eff30e9514b534b2a2e01696\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/2023\\\/04\\\/24\\\/using-sbom-to-kiss\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/2023\\\/04\\\/24\\\/using-sbom-to-kiss\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/2023\\\/04\\\/24\\\/using-sbom-to-kiss\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/gridtitle.png\",\"contentUrl\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/gridtitle.png\",\"width\":1152,\"height\":648},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/2023\\\/04\\\/24\\\/using-sbom-to-kiss\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using SBOM to KISS!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/\",\"name\":\"Solution Street Blog\",\"description\":\"Quality Software Engineering - Technology and Consulting Articles\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/#\\\/schema\\\/person\\\/c4846451eff30e9514b534b2a2e01696\",\"name\":\"Peggy Frankel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/af71ceb16f89d32c9bb825a47f8057da9283b4a27a934bf0c47cdef65ad0eb5d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/af71ceb16f89d32c9bb825a47f8057da9283b4a27a934bf0c47cdef65ad0eb5d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/af71ceb16f89d32c9bb825a47f8057da9283b4a27a934bf0c47cdef65ad0eb5d?s=96&d=mm&r=g\",\"caption\":\"Peggy Frankel\"},\"url\":\"https:\\\/\\\/www.solutionstreet.com\\\/blog\\\/author\\\/pfrankel\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Using SBOM to KISS! - Solution Street 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.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/","og_locale":"en_US","og_type":"article","og_title":"Using SBOM to KISS! - Solution Street Blog","og_description":"Everyone&#8217;s favorite TV show included one of my recent favorite acronyms &#8211; KISS &#8211; Keep It Simple, Smarty pants \u2014 Ted Lasso. In software construction we use this acronym often. Mainly because it is very easy to overcomplicate our systems due to the plethora of libraries, tools, utilities, and services available. Many of these are [&hellip;]","og_url":"https:\/\/www.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/","og_site_name":"Solution Street Blog","article_published_time":"2023-04-24T12:38:20+00:00","article_modified_time":"2023-04-24T12:38:29+00:00","og_image":[{"url":"https:\/\/www.solutionstreet.com\/blog\/wp-content\/uploads\/2023\/04\/gridtitle-1024x576.png","type":"","width":"","height":""}],"author":"Peggy Frankel","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Peggy Frankel","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/#article","isPartOf":{"@id":"https:\/\/www.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/"},"author":{"name":"Peggy Frankel","@id":"https:\/\/www.solutionstreet.com\/blog\/#\/schema\/person\/c4846451eff30e9514b534b2a2e01696"},"headline":"Using SBOM to KISS!","datePublished":"2023-04-24T12:38:20+00:00","dateModified":"2023-04-24T12:38:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/"},"wordCount":1072,"commentCount":0,"image":{"@id":"https:\/\/www.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/#primaryimage"},"thumbnailUrl":"https:\/\/www.solutionstreet.com\/blog\/wp-content\/uploads\/2023\/04\/gridtitle-1024x576.png","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/","url":"https:\/\/www.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/","name":"Using SBOM to KISS! - Solution Street Blog","isPartOf":{"@id":"https:\/\/www.solutionstreet.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/#primaryimage"},"image":{"@id":"https:\/\/www.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/#primaryimage"},"thumbnailUrl":"https:\/\/www.solutionstreet.com\/blog\/wp-content\/uploads\/2023\/04\/gridtitle-1024x576.png","datePublished":"2023-04-24T12:38:20+00:00","dateModified":"2023-04-24T12:38:29+00:00","author":{"@id":"https:\/\/www.solutionstreet.com\/blog\/#\/schema\/person\/c4846451eff30e9514b534b2a2e01696"},"breadcrumb":{"@id":"https:\/\/www.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/#primaryimage","url":"https:\/\/www.solutionstreet.com\/blog\/wp-content\/uploads\/2023\/04\/gridtitle.png","contentUrl":"https:\/\/www.solutionstreet.com\/blog\/wp-content\/uploads\/2023\/04\/gridtitle.png","width":1152,"height":648},{"@type":"BreadcrumbList","@id":"https:\/\/www.solutionstreet.com\/blog\/2023\/04\/24\/using-sbom-to-kiss\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.solutionstreet.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Using SBOM to KISS!"}]},{"@type":"WebSite","@id":"https:\/\/www.solutionstreet.com\/blog\/#website","url":"https:\/\/www.solutionstreet.com\/blog\/","name":"Solution Street Blog","description":"Quality Software Engineering - Technology and Consulting Articles","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.solutionstreet.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.solutionstreet.com\/blog\/#\/schema\/person\/c4846451eff30e9514b534b2a2e01696","name":"Peggy Frankel","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/af71ceb16f89d32c9bb825a47f8057da9283b4a27a934bf0c47cdef65ad0eb5d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/af71ceb16f89d32c9bb825a47f8057da9283b4a27a934bf0c47cdef65ad0eb5d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/af71ceb16f89d32c9bb825a47f8057da9283b4a27a934bf0c47cdef65ad0eb5d?s=96&d=mm&r=g","caption":"Peggy Frankel"},"url":"https:\/\/www.solutionstreet.com\/blog\/author\/pfrankel\/"}]}},"_links":{"self":[{"href":"https:\/\/www.solutionstreet.com\/blog\/wp-json\/wp\/v2\/posts\/5939","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.solutionstreet.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.solutionstreet.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.solutionstreet.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.solutionstreet.com\/blog\/wp-json\/wp\/v2\/comments?post=5939"}],"version-history":[{"count":6,"href":"https:\/\/www.solutionstreet.com\/blog\/wp-json\/wp\/v2\/posts\/5939\/revisions"}],"predecessor-version":[{"id":5947,"href":"https:\/\/www.solutionstreet.com\/blog\/wp-json\/wp\/v2\/posts\/5939\/revisions\/5947"}],"wp:attachment":[{"href":"https:\/\/www.solutionstreet.com\/blog\/wp-json\/wp\/v2\/media?parent=5939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.solutionstreet.com\/blog\/wp-json\/wp\/v2\/categories?post=5939"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.solutionstreet.com\/blog\/wp-json\/wp\/v2\/tags?post=5939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}