{"id":3902,"date":"2014-07-05T01:56:13","date_gmt":"2014-07-05T01:56:13","guid":{"rendered":"http:\/\/www.jitendrazaa.com\/blog\/?p=3902"},"modified":"2014-11-03T01:19:22","modified_gmt":"2014-11-03T01:19:22","slug":"automated-daily-backup-using-ant-migration-tool-and-git","status":"publish","type":"post","link":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/automated-daily-backup-using-ant-migration-tool-and-git\/","title":{"rendered":"Automated Daily Backup of Salesforce Using ANT Migration Tool and GIT"},"content":{"rendered":"<p style=\"text-align: justify;\">In few\u00a0previous articles, I have talked about how to use &#8220;<a title=\"Salesforce Migration Tool \u2013 ANT\" href=\"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/salesforce-migration-tool-ant\/\">ANT Migration tool in Salesforce<\/a>&#8221; and &#8220;<a title=\"Salesforce + Git + Eclipse + EGIT = Better and Distributed Source Control\" href=\"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/salesforce-git-eclipse-egit-better-and-distributed-source-control\/\">How to Use EGit plugin in Eclipse to work with Git<\/a>&#8220;. So to make this article short, I assume that you are already familiar with ANT Migration tool provided by Salesforce and Git.<\/p>\n<p style=\"text-align: justify;\">During project development life cycle it is very essential to backup your code and Configurations daily. However sometimes developers forgot to commit changes in Git, may be \u00a0because of workload. It may create an issue if someone wants to check back history of code for\u00a0that duration, there will be no use of having code repository in place if it cant help us to get out of problem.<\/p>\n<p style=\"text-align: justify;\">In this article, I will move one step further and explain how to setup automated script which will run on your System startup and commit\u00a0backup of your Salesforce organization into local Git repository without any manual interference.<\/p>\n<figure id=\"attachment_3904\" aria-describedby=\"caption-attachment-3904\" style=\"width: 668px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/07\/Salesforce-Automated-Script-for-Data-Backup-Using-CommandLine.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-3904\" src=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/07\/Salesforce-Automated-Script-for-Data-Backup-Using-CommandLine.png?resize=668%2C283&#038;ssl=1\" alt=\"Salesforce Automated Script for Data Backup Using CommandLine\" width=\"668\" height=\"283\" srcset=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/07\/Salesforce-Automated-Script-for-Data-Backup-Using-CommandLine.png?w=668&amp;ssl=1 668w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/07\/Salesforce-Automated-Script-for-Data-Backup-Using-CommandLine.png?resize=300%2C127&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/07\/Salesforce-Automated-Script-for-Data-Backup-Using-CommandLine.png?resize=624%2C264&amp;ssl=1 624w\" sizes=\"auto, (max-width: 668px) 100vw, 668px\" \/><\/a><figcaption id=\"caption-attachment-3904\" class=\"wp-caption-text\">Salesforce Automated Script for Data Backup Using CommandLine<\/figcaption><\/figure>\n<p><!--more--><\/p>\n<p style=\"text-align: justify;\"><strong>Step1 :<\/strong> Get your Salesforce project into Eclipse, If possible select every Metadata components. This step will give us &#8220;<span style=\"text-decoration: underline;\">package.xml<\/span>&#8221; file.<\/p>\n<p style=\"text-align: justify;\"><strong>Step 2 :<\/strong> Set up your EGit in Eclipse, <a title=\"Salesforce + Git + Eclipse + EGIT = Better and Distributed Source Control\" href=\"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/salesforce-git-eclipse-egit-better-and-distributed-source-control\/\">It is explained here in very detail<\/a>. This step will generate &#8220;.git&#8221; folder in your system which will have all information about your local and remote repository.<\/p>\n<p style=\"text-align: justify;\"><strong>Step 3 :<\/strong> Create &#8220;<span style=\"text-decoration: underline;\">build.properties<\/span>&#8221; file, may be one folder above your Source code folder.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n# build.properties\r\n# Specify the login credentials for the desired Salesforce organization\r\nsf.username = YOUR_SFDC_USERNAME\r\nsf.password = YOUR_SFDC_PASSWORD+SECURITYTOKEN\r\n# Use 'https:\/\/login.salesforce.com' for production or developer edition (the default if not specified).\r\n# Use 'https:\/\/test.salesforce.com for sandbox.\r\nsf.serverurl = https:\/\/test.salesforce.com\r\n\r\n#Below String is used as a comment while pushing Backup into Git\r\ngt.commitMessage = Daily Data Backup using Automated ANT Script\r\n\r\n#Directory where Git Configuration is created by Egit. &quot;..\/ denotes one folder above current folder&quot;\r\ngt.Directory = ..\/git\/Shivasoft-sandbox\r\n<\/pre>\n<p style=\"text-align: justify;\">You can read in detail about <a title=\"Salesforce Migration Tool \u2013 ANT\" href=\"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/salesforce-migration-tool-ant\/\">ANT configurations here<\/a>.<\/p>\n<p style=\"text-align: justify;\"><strong>Step 4 :<\/strong> ANT Does not have any command for Git. So we have to write macro for ANT which will execute Git executable file from your operating System.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n\t&lt;macrodef name=&quot;git&quot;&gt;\r\n\t\t&lt;attribute name=&quot;command&quot; \/&gt;\r\n\t\t&lt;attribute name=&quot;dir&quot; default=&quot;${gt.Directory}&quot; \/&gt;\r\n\t\t&lt;element name=&quot;args&quot; optional=&quot;true&quot; \/&gt;\r\n\t\t&lt;sequential&gt;\r\n\t\t\t&lt;echo message=&quot;git @{command}&quot; \/&gt;\r\n\t\t\t&lt;exec executable=&quot;git&quot; dir=&quot;@{dir}&quot;&gt;\r\n\t\t\t\t&lt;arg value=&quot;@{command}&quot; \/&gt;\r\n\t\t\t\t&lt;args\/&gt;\r\n\t\t\t&lt;\/exec&gt;\r\n\t\t&lt;\/sequential&gt;\r\n\t&lt;\/macrodef&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">We will add above code snippet in &#8220;<span style=\"text-decoration: underline;\">build.xml<\/span>&#8221; file of ANT Migration tool. Complete &#8220;<span style=\"text-decoration: underline;\">build.xml<\/span>&#8221; file will look like :<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;project name=&quot;Shivasoft Sandbox&quot; default=&quot;deployCode&quot; basedir=&quot;.&quot; xmlns:sf=&quot;antlib:com.salesforce&quot;&gt;\r\n    &lt;property file=&quot;build.properties&quot;\/&gt;\r\n    &lt;property environment=&quot;env&quot;\/&gt;\r\n\r\n\t&lt;target name=&quot;SFDCFetch&quot;&gt;\r\n\t  &lt;!-- Retrieve the contents into another directory --&gt;\r\n\t  &lt;sf:retrieve username=&quot;${sf.username}&quot;\r\n\t\t\t\t   password=&quot;${sf.password}&quot;\r\n\t\t\t\t   serverurl=&quot;${sf.serverurl}&quot;\r\n\t\t\t\t   retrieveTarget=&quot;RELATIVE PATH OF SRC FOLDER WHICH IS FETCHED BY ECLIPSE&quot;\r\n\t\t\t\t   unpackaged=&quot;RELATIVE PATH OF PACKAGE.XML FILE&quot; \/&gt;\r\n\t&lt;\/target&gt;\r\n\r\n\t&lt;macrodef name=&quot;git&quot;&gt;\r\n\t\t&lt;attribute name=&quot;command&quot; \/&gt;\r\n\t\t&lt;attribute name=&quot;dir&quot; default=&quot;${gt.Directory}&quot; \/&gt;\r\n\t\t&lt;element name=&quot;args&quot; optional=&quot;true&quot; \/&gt;\r\n\t\t&lt;sequential&gt;\r\n\t\t\t&lt;echo message=&quot;git @{command}&quot; \/&gt;\r\n\t\t\t&lt;exec executable=&quot;git&quot; dir=&quot;@{dir}&quot;&gt;\r\n\t\t\t\t&lt;arg value=&quot;@{command}&quot; \/&gt;\r\n\t\t\t\t&lt;args\/&gt;\r\n\t\t\t&lt;\/exec&gt;\r\n\t\t&lt;\/sequential&gt;\r\n\t&lt;\/macrodef&gt;\r\n\r\n\t&lt;target name=&quot;GitOperations&quot; description=&quot;Commits all changes to version git&quot; depends=&quot;SFDCFetch&quot;&gt;\r\n\r\n\t\t&lt;echo message=&quot;Commiting all changes with message ${gt.commitMessage}&quot; \/&gt; \r\n\r\n\t\t&lt;git command=&quot;add&quot;&gt;\r\n\t\t\t&lt;args&gt;\r\n\t\t\t\t&lt;arg value=&quot;.&quot; \/&gt;\r\n\t\t\t&lt;\/args&gt;\r\n\t\t&lt;\/git&gt;\r\n\r\n\t\t&lt;git command=&quot;commit&quot;&gt;\r\n\t\t\t&lt;args&gt;\r\n\t\t\t\t&lt;arg value=&quot;-am ${gt.commitMessage}&quot; \/&gt;\r\n\t\t\t&lt;\/args&gt;\r\n\t\t&lt;\/git&gt;\r\n\t&lt;\/target&gt;\r\n&lt;\/project&gt;\r\n<\/pre>\n<p>As per above file, target &#8220;GitOperations&#8221; depends on &#8220;SFDCFetch&#8221;. So first metadata information will be fetched into folder specified in attribute &#8220;retrieveTarget&#8221; of tag &#8220;sf:retrieve&#8221;. After that target &#8220;GitOperation&#8221; will be executed.<br \/>\nAs shown in above file, &#8220;GitOperations&#8221; uses &#8220;git&#8221; macro defined which eventually invokes Git executable file and passes required argument.<\/p>\n<p>To run above file, we simple have to use command &#8220;ant GitOperations&#8221;.<br \/>\nHowever, If we want to run above files automatically, we need to create &#8220;Command\/Batch&#8221; file in Windows or &#8220;Shell&#8221; file in linux.<\/p>\n<p><strong>Step 5 :<\/strong> Create Command file in Windowst by name &#8220;Script.cmd&#8221;. This file needs to save in same folder where &#8220;build.properties&#8221; and &#8220;build.xml&#8221; exists.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n@echo OFF\r\necho Data Backup for Shivasoft Sandbox\r\nant GitOperations\r\npause\r\n<\/pre>\n<figure id=\"attachment_3903\" aria-describedby=\"caption-attachment-3903\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/07\/Salesforce-Automated-Script-for-Data-Backup.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-3903\" src=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/07\/Salesforce-Automated-Script-for-Data-Backup.png?resize=300%2C275&#038;ssl=1\" alt=\"Salesforce Automated Script for Data Backup\" width=\"300\" height=\"275\" srcset=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/07\/Salesforce-Automated-Script-for-Data-Backup.png?resize=300%2C275&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/07\/Salesforce-Automated-Script-for-Data-Backup.png?w=583&amp;ssl=1 583w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-3903\" class=\"wp-caption-text\">Salesforce Automated Script for Data Backup<\/figcaption><\/figure>\n<p style=\"text-align: justify;\"><strong>Step 6 :<\/strong> Add Shortcut of above command file into Windows startup folder. And at this step we achieved our target. Whenever you will start you System, this executable file will execute.<br \/>\nI hope you believe on Energy saving and shutdown your system everyday before leaving office \ud83d\ude42 . However if you doesn&#8217;t\u00a0shutdown or Log-Off your system, You may need to check for &#8220;<a title=\"Schedule a task\" href=\"http:\/\/windows.microsoft.com\/en-US\/windows\/schedule-task#1TC=windows-7\">Scheduling Task<\/a>&#8221; to run above command file once in 24 hours.<\/p>\n<p style=\"text-align: justify;\"><strong>Note :<\/strong> We have committed Data into Local Git repository only. Whenever you open Eclipse, you can use &#8220;Push to Remote&#8221; option in EGit. I tried to push automatically in remote repository however I run into issue where my Push Command in ANT hanged, I tried a lot but no luck. If anyone of you get lucky, please let me know.<\/p>\n<p><strong>Update <\/strong><em><span style=\"text-decoration: underline;\">(2-Nov-2014):<\/span><\/em><br \/>\nIf you want to save log of Git operations daily, then we can pipe output of all operations to text file.<br \/>\nAssume, Command for &#8220;ant git operation&#8221; is saved in some batch file named &#8220;AntCommand.cmd&#8221;.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n@echo OFF\r\necho Data Backup in Progress, Please wait\r\nAntCommand.cmd &gt; logs\/&quot;%date%&quot;.log 2&gt;&amp;1\r\necho Backup Complete\r\n&quot;logs\/&quot;%date%&quot;.log&quot;\r\n<\/pre>\n<p>sample content of &#8220;AntCommand.cmd&#8221;<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n@echo OFF\r\necho Data Backup for all sandboxes\r\nant GitOperations\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>In few\u00a0previous articles, I have talked about how to use &#8220;ANT Migration tool in Salesforce&#8221; and &#8220;How to Use EGit plugin in Eclipse to work with Git&#8220;. So to make this article short, I assume that you are already familiar with ANT Migration tool provided by Salesforce and Git. During project development life cycle it [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"jz_research_post":"","_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[23,9],"tags":[261,262,86,88,108,331],"class_list":["post-3902","post","type-post","status-publish","format-standard","hentry","category-configuration","category-salesforce","tag-ant","tag-ant-migration-tool","tag-eclipse","tag-egit","tag-git","tag-salesforce"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":5478,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/delete-components-using-ant-migration-tool-video\/","url_meta":{"origin":3902,"position":0},"title":"Delete Components using Ant Migration tool &#8211; Video","author":"Jitendra","date":"April 27, 2016","format":false,"excerpt":"This video tutorial shows that how we can delete components like Apex class, trigger from Salesforce using ANT migration tool.","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/img.youtube.com\/vi\/3kMGy6OeJAc\/0.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":4276,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/continuous-integration-in-salesforce-using-jenkins-and-git-video-tutorial\/","url_meta":{"origin":3902,"position":1},"title":"Continuous integration in Salesforce Using Jenkins and Git | Video Tutorial","author":"Jitendra","date":"March 23, 2015","format":false,"excerpt":"As your Salesforce Organization undergoes heavy customization and frequent builds, moving changes from one Sandbox to other sandboxes starts taking longer time and effort. Also, in normal Salesforce project, there are chances that you will have minimum three sandboxes likely Developer Sandbox, QA Sandbox and UAT Sandbox. After some time\u2026","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Salesforce - Jenkins Git Polling Log","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/Salesforce-Jenkins-Git-Polling-Log.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/Salesforce-Jenkins-Git-Polling-Log.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/Salesforce-Jenkins-Git-Polling-Log.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/Salesforce-Jenkins-Git-Polling-Log.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":3086,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/salesforce-git-eclipse-egit-better-and-distributed-source-control\/","url_meta":{"origin":3902,"position":2},"title":"Salesforce + Git + Eclipse + EGIT = Better and Distributed Source Control","author":"Jitendra","date":"September 16, 2012","format":false,"excerpt":"During my J2EE and .Net days, I was much dependent on the subversion repository. I had never thought my code without SVN. When I moved to Salesforce few years back, the first thing I missed is code repository to have better source code control. As svn creates either \".svn\"\u009d or\u2026","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Architecture of GIT","src":"https:\/\/i0.wp.com\/jitendrazaa.com\/blog\/wp-content\/uploads\/2012\/09\/Architecture-of-GIT.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":3115,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/authenticate-git-using-ssh-protocol-with-eclipse-and-egit-salesforce\/","url_meta":{"origin":3902,"position":3},"title":"Authenticate Git using SSH protocol with Eclipse and Egit &#8211; Salesforce","author":"Jitendra","date":"September 25, 2012","format":false,"excerpt":"In Previous article, i have explained step by step approach to configure Git for Salesforce using Eclipse and Egit plugin. However, i have explained the \"https\" method to connect Git directly. There are several repositories which does not support the \"https\" protocol and prefer \"SSH\" (Secure Shell) protocol. So, in\u2026","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Configure Push for SSH Authentication in Git","src":"https:\/\/i0.wp.com\/jitendrazaa.com\/blog\/wp-content\/uploads\/2012\/09\/Generate-SSH-RSA-Key-using-Eclipse.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/jitendrazaa.com\/blog\/wp-content\/uploads\/2012\/09\/Generate-SSH-RSA-Key-using-Eclipse.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/jitendrazaa.com\/blog\/wp-content\/uploads\/2012\/09\/Generate-SSH-RSA-Key-using-Eclipse.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":3448,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/using-git-with-force-com-ide-video-tutorial\/","url_meta":{"origin":3902,"position":4},"title":"Using GIT with Force.com IDE &#8211; Video Tutorial","author":"Jitendra","date":"September 23, 2013","format":false,"excerpt":"In this article, we discussed how to use GIT with Eclipse. I have created Video Tutorial for same which includes How to Upgrade Eclipse from Helios to Indigo Install EGIT Plugin Introduction to Bit Bucket","rel":"","context":"In &quot;Force.com&quot;","block_context":{"text":"Force.com","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/force-com\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3937,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/heroku\/create-node-js-application-using-eclipse-and-deploy-to-heroku-video-tutorial\/","url_meta":{"origin":3902,"position":5},"title":"Create Node.js Application using Eclipse and deploy to Heroku &#8211; Video Tutorial","author":"Jitendra","date":"July 27, 2014","format":false,"excerpt":"In Below video, I have explained how to create basic Node.js application in Eclipse with help of Egit and Heroku plugin and deploy to Heroku. Please read below two articles, to get familiar of Plugins and how to setup : Salesforce + Git + Eclipse + EGIT = Better and\u2026","rel":"","context":"In &quot;Heroku&quot;","block_context":{"text":"Heroku","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/heroku\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/3902","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/comments?post=3902"}],"version-history":[{"count":7,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/3902\/revisions"}],"predecessor-version":[{"id":4036,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/3902\/revisions\/4036"}],"wp:attachment":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/media?parent=3902"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/categories?post=3902"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/tags?post=3902"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}