{"id":1830,"date":"2016-06-17T21:19:18","date_gmt":"2016-06-17T21:19:18","guid":{"rendered":"\/?post_type=ht_kb&#038;p=1830"},"modified":"2018-03-10T21:10:05","modified_gmt":"2018-03-10T21:10:05","slug":"debugging-user-connections-with-a-closed-caster","status":"publish","type":"ht_kb","link":"https:\/\/www.use-snip.com\/kb\/knowledge-base\/debugging-user-connections-with-a-closed-caster\/","title":{"rendered":"Debugging User Connections with a closed caster"},"content":{"rendered":"<p>This article covers the various errors and reporting messages that can occur when <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> is operating in a <span style=\"text-decoration: underline;\"><strong>closed<\/strong> <\/span>mode such that every new user (every NTRIP Client) must present a valid account and a password in order to log in.<\/p>\n<p style=\"margin-left: 40px;\">If <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> is operating in an <span style=\"text-decoration: underline;\"><strong>open<\/strong> <\/span>mode, the messages described here will not apply.\u00a0 Under open mode connections all that a user (an NTRIP Client) needs to do is request a mountPt that matches to those in the current Caster table.\u00a0 A similar article dealing with the general debugging of client connections (operating in the open mode) can be found <a href=\"\/kb\/knowledge-base\/debugging-client-connections\/\">here<\/a>.<\/p>\n<p>\u00a0It should also be noted that mountPt strings are\u00a0<span style=\"text-decoration: underline;\">always<\/span> case sensitive and consist of a single word. [So: <em>NEAR3<\/em>, <em>NEAR-3<\/em>, <em>Near3<\/em> are three different mountPts]<\/p>\n<h3>Background Articles<\/h3>\n<p>Adding new users is covered in general terms in this <a href=\"https:\/\/www.use-snip.com\/kb\/managing-user-accounts\/\">article<\/a>.\u00a0\u00a0 This article may be of use in understanding how to operate the various <a href=\"https:\/\/www.use-snip.com\/kb\/how-to-use-filter-controls-the-details\/\">console filters<\/a> which <span style=\"color: #0000ff;\"><strong>SNIP<\/strong> <\/span>provides. Effective filtering is of great benefit when trying to debug a problem connection in the presence of many other server events in the log.<\/p>\n<h3>Closing the SNIP Caster<\/h3>\n<p>The critical check box\u00a0<strong>Allow Anonymous access for Users<\/strong> which is used to enable or disable the open\/closed mode of the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong> <\/span>Caster is described in <a href=\"https:\/\/www.use-snip.com\/kb\/managing-user-accounts\/\">this<\/a> article.<\/p>\n<h3>Watching User Connections as they Occur<\/h3>\n<p>The console log can be used to view each NTRIP Client dialog as it occurs.\u00a0 The critical check box which MUST be set is labeled\u00a0 <strong>Display New User Connection Details<\/strong> which found on the <a href=\"https:\/\/www.use-snip.com\/kb\/the-caster-and-clients-tab\/\">Caster and Clients <\/a>tab.\u00a0 Be sure to also set the Log threshold to &#8220;minor&#8221; and enable client message types in order to see these details.\u00a0 When checked, after each connection is processed, a report of its outcome is presented in the console log. Additional analysis details are provided when the Caster is closed and the connection attempt failed.<\/p>\n<h3>A Typical NTRIP Client connection<\/h3>\n<p>Will look like the below console log entry when all goes well. In these examples we presume that we have created an account which has been setup with the credentials of: \u00a0<em>user:password<\/em> \u00a0 (all lower case).\u00a0 When the user:password pair sequence is sent, they are encoded in a <a href=\"https:\/\/www.base64encode.org\/\" target=\"_blank\" rel=\"noopener\">Base64<\/a> format.\u00a0 The NTRIP Client will connect to a mountPt which is called:\u00a0 MOUNTPT.\u00a0 The values [Cxx] are the sequential count of new client connections on this machine.\u00a0 So a line like: &#8220;<span style=\"font-size: 12pt; line-height: 115%; font-family: Times New Roman,serif;\"><b><span style=\"color: blue;\">Client #C09<\/span><\/b> [69.75.31.227:63149]&#8221;<\/span> informs you that this was the ninth client connection since <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> was started and the IP and port that it came from.<\/p>\n<h4><span style=\"color: #3366ff;\">Working NTRIP Client connection, with good user and good password<\/span><\/h4>\n<pre style=\"margin-left: 40px;\"><span style=\"font-size: 12.0pt; font-family: Times New Roman,serif;\">[<b><span style=\"color: blue;\">C09<\/span><\/b>]:\u00a0\u00a0Client [#C09] appears to an <b>NTRIP Client<\/b> connecting with:\r\n[<b><span style=\"color: blue;\">C09<\/span><\/b>]:\u00a0\u00a0An NTRIP Client sent: ======================\r\n[C09]:\r\n<\/span><span style=\"font-size: 12.0pt; ;font-family: Courier New;\">GET \/MOUNTPT HTTP\/1.0\r\nUser-Agent: NTRIP RTKLIB\/2.4.2\r\nAuthorization: Basic dXNlcjpwYXNzd29yZA==\r\n<\/span><span style=\"font-size: 12pt; font-family: Times New Roman,serif;\">[<b><span style=\"color: blue;\">C09<\/span><\/b>]:\u00a0 ======================\r\n[<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0MountPt [ MOUNTPT ] is a <b>match<\/b> - allow connection <span style=\"color: #008000;\"><strong>IF<\/strong><\/span> credentials match a user entry\r\n[<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0Credentials for user <span style=\"color: #008000;\"><b>accepted<\/b><\/span>.\r\n<\/span><span style=\"font-size: 12.0pt; line-height: 115%; font-family: Times New Roman,serif;\">[<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0<b><span style=\"color: blue;\">Client #C09<\/span><\/b> [69.75.31.227:63149] Connected to <b>MOUNTPT<\/b> at 12:21:58 PM (local)<\/span><\/pre>\n<p>The user name and password are &#8220;<b><span style=\"font-size: 12.0pt; font-family: Times New Roman,serif;\">dXNlcjpwYXNzd29yZA==<\/span><\/b>&#8221; and encoded in <a href=\"https:\/\/www.base64encode.org\/\" target=\"_blank\" rel=\"noopener\">Base64<\/a> in the above (this is how it is sent over the internet) and, because <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> has accepted the user, there is no further analysis information provided.<\/p>\n<h4><span style=\"color: #3366ff;\">Non-Working NTRIP Client connection, <span style=\"text-decoration: underline;\">no user<\/span> and no password<\/span><\/h4>\n<pre style=\"margin-left: 40px;\"><span style=\"font-size: 12.0pt; font-family: Times New Roman,serif;\"> [<b><span style=\"color: blue;\">C10<\/span><\/b>]:\u00a0\u00a0Client [#C10] appears to an <b>NTRIP Client<\/b> connecting with:\r\n [<b><span style=\"color: blue;\">C10<\/span><\/b>]:\u00a0\u00a0An NTRIP Client sent: ======================\r\n [C10]:\r\n <\/span><span style=\"font-size: 12.0pt; font-family: Courier New;\">GET \/MOUNTPT HTTP\/1.0\r\n User-Agent: NTRIP RTKLIB\/2.4.2\r\n Accept: *\/*\r\n Connection: close\r\n <\/span><span style=\"font-size: 12.0pt; font-family: Times New Roman,serif;\">[<b><span style=\"color: blue;\">C10<\/span><\/b>]:\u00a0 ======================\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0Mount Pt [ MOUNTPT ] is a <b>match<\/b> - allow connection IF credentials match a user entry.\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0No credentials were extracted from request (Caster is closed), <b>Disconnected<\/b>.\r\n <\/span><span style=\"font-size: 12.0pt; line-height: 115%; font-family: Times New Roman,serif;\">[<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0<b><span style=\"color: blue;\">Client #C10<\/span><\/b> [69.75.31.227:64944] Disconnect from , 89 Bytes in, 959 Bytes out, Connected: <b>005 mSec<\/b><\/span><\/pre>\n<h4><span style=\"color: #3366ff;\">Non-Working NTRIP Client connection, <span style=\"text-decoration: underline;\">good user and bad password<\/span><\/span><\/h4>\n<pre style=\"-qt-block-indent: 0; margin-left: 40px;\"> [<b><span style=\"color: blue;\">C11<\/span><\/b>]:\u00a0\u00a0Client [#C11] appears to an <b>NTRIP Client<\/b> connecting with:\r\n [<b><span style=\"color: blue;\">C11<\/span><\/b>]:\u00a0\u00a0An NTRIP Client sent: ======================\r\n [C11]:\r\n <span style=\"font-family: Courier New;\">GET \/MOUNTPT HTTP\/1.0\r\n User-Agent: NTRIP RTKLIB\/2.4.2\r\n Authorization: Basic dXNlcjpCYWRQYXNzd29yZA==\r\n <\/span>[<b><span style=\"color: blue;\">C11<\/span><\/b>]:\u00a0\u00a0 \u00a0 ======================\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0Mount Pt [ MOUNTPT ] is a <b>match <\/b>- allow connection IF credentials match a user entry.\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0Credentials for user <b>did not match<\/b> an entry;\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0Detailed Report:\r\n Analysis of User: <b>user<\/b> and PW: <b>BadPassword<\/b> is:\r\n The user: <b>user<\/b> <span style=\"color: green;\">is a valid entry in the tables<\/span>\r\n The password: <b>BadPassword<\/b> <span style=\"color: red;\">is <b>NOT <\/b>Valid for this user<\/span> (good user, bad password)\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0<b><span style=\"color: blue;\">Client #C11<\/span><\/b> [69.75.31.227:65331] Disconnect from, 104 Bytes in, 959 Bytes out, Connected: <b>004 mSec<\/b><\/pre>\n<h4><span style=\"color: #3366ff;\">Non-Working NTRIP Client connection, <span style=\"text-decoration: underline;\">unknown user<\/span><br \/>\n<\/span><\/h4>\n<pre style=\"-qt-block-indent: 0; margin-left: 40px;\"> [<b><span style=\"color: blue;\">C12<\/span><\/b>]:\u00a0\u00a0Client [#C12] appears to an <b>NTRIP Client<\/b> connecting with:\r\n [<b><span style=\"color: blue;\">C12<\/span><\/b>]:\u00a0\u00a0An NTRIP Client sent: ======================\r\n [C12]:\r\n <span style=\"font-family: Courier New;\">GET \/MOUNTPT HTTP\/1.0\r\n User-Agent: NTRIP RTKLIB\/2.4.2\r\n Authorization: Basic QmFkVXNlcjpCYWRQYXNzd29yZA==\r\n <\/span>[<b><span style=\"color: blue;\">C12<\/span><\/b>]:\u00a0\u00a0 \u00a0 ======================\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0Mount Pt [ MOUNTPT ] is a <b>match <\/b>- allow connection IF credentials match a user entry.\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0Credentials for user <b>did not match<\/b> an entry;\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0Detailed Report:\r\n Analysis of User: <b>BadUser<\/b> and PW: <b>BadPassword<\/b> is:\r\n The user name: <b>BadUser<\/b> <span style=\"color: red;\">is <b>NOT <\/b>a Valid Entry in the tables<\/span> (this is an unknown user)\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0<b><span style=\"color: blue;\">Client #C12<\/span><\/b> [69.75.31.227:65408] Disconnect from, 108 Bytes in, 959 Bytes out, Connected: <b>001 mSec<\/b><\/pre>\n<h4><span style=\"color: #3366ff;\">Non-Working NTRIP Client connection, <span style=\"text-decoration: underline;\">too many connections<\/span>\u00a0<\/span><\/h4>\n<pre style=\"-qt-block-indent: 0; margin: 9.0pt 0in 9.0pt 0in; margin-left: 40px;\"> [<b><span style=\"color: blue;\">C14<\/span><\/b>]:\u00a0\u00a0Client [#C14] appears to an <b>NTRIP Client<\/b> connecting with:\r\n [<b><span style=\"color: blue;\">C14<\/span><\/b>]:\u00a0\u00a0An NTRIP Client sent: ======================\r\n [C14]:\r\n <span style=\"font-family: Courier New;\">GET \/MOUNTPT HTTP\/1.0\r\n User-Agent: NTRIP RTKLIB\/2.4.2\r\n Authorization: Basic dXNlcjpwYXNzd29yZA==\r\n <\/span>[<b><span style=\"color: blue;\">C14<\/span><\/b>]:\u00a0\u00a0 \u00a0 ======================\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0Mount Pt [ MOUNTPT ] is a <b>match <\/b>- allow connection IF credentials match a user entry.\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0Credentials for user <b>did not match<\/b> an entry;\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0Detailed Report:\r\n Analysis of User: <b>user<\/b> and PW: <b>password<\/b> is:\r\n The user: <b>user<\/b> <span style=\"color: green;\">is a valid entry in the tables<\/span>\r\n The password: <b>password<\/b> <span style=\"color: green;\">is the valid for this user<\/span>\r\n This account currently has <b>1<\/b> connections, and is allowed as many as <b>1<\/b>\r\n <span style=\"color: red;\">This account is currently using <b>All <\/b>its allowed connections<\/span> (too many connections)\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0<b><span style=\"color: blue;\">Client #C14<\/span><\/b> [69.75.31.227:49327] Disconnect from , 100 Bytes in, 959 Bytes out, Connected: <b>007 mSec<\/b><\/pre>\n<p>Note that you set the number of active connections each user can have at one time when you create the account. Some Caster operators allow only one active connection per user at a time. The default value in\u00a0<span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> is five, but you can set this for each user. If a user account may connect to more than one stream, and from more than one device, (all at the same time) you will need to set the value to accommodate both.\u00a0 [Aside: Some of <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> owners use it to make the single connection to a site and then redistribute the stream data to others on the work team. <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> is very useful for this, but please confirm that your data provider allows this use.]<\/p>\n<h4><span style=\"color: #3366ff;\">Non-Working NTRIP Client connection, <span style=\"text-decoration: underline;\">bad user (capitation)<\/span> and good password<br \/>\n<\/span><\/h4>\n<pre style=\"-qt-block-indent: 0; margin-left: 40px;\"> [<b><span style=\"color: blue;\">C15<\/span><\/b>]:\u00a0\u00a0Client [#C15] appears to an <b>NTRIP Client<\/b> connecting with:\r\n [<b><span style=\"color: blue;\">C15<\/span><\/b>]:\u00a0\u00a0An NTRIP Client sent: ======================\r\n [C15]:\r\n <span style=\"font-family: Courier New;\">GET \/MOUNTPT HTTP\/1.0\r\n User-Agent: NTRIP RTKLIB\/2.4.2\r\n Authorization: Basic VXNlUjpwYXNzd29yZA==\r\n <\/span>[<b><span style=\"color: blue;\">C15<\/span><\/b>]:\u00a0\u00a0 \u00a0 ======================\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0Mount Pt [ MOUNTPT ] is a <b>match <\/b>- allow connection IF credentials match a user entry\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0Credentials for user <b>did not match<\/b> an entry;\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0Detailed Report:\r\n Analysis of User: <b>UseR<\/b> and PW: <b>password<\/b> is:\r\n The user name: <b>UseR<\/b> <span style=\"color: red;\">is <b>NOT <\/b>a Valid Entry in the tables<\/span> (this is an unknown user)\r\n [<b><span style=\"color: blue;\">MOUNTPT<\/span><\/b>]:\u00a0\u00a0<b><span style=\"color: blue;\">Client #C15<\/span><\/b> [69.75.31.227:49782] Disconnect from , 100 Bytes in, 959 Bytes out, Connected: <b>005 mSec<\/b><\/pre>\n<p>Here one can observe that the user is \u201cUseR\u201d here and not \u201cuser\u201d as used elsewhere. Note that user and passwords\u00a0<span style=\"text-decoration: underline;\">ARE<\/span> case sensitive, but that (unlike near matches for mountPts) you are not informed when a user gets the capitalization incorrect.<\/p>\n<h4><span style=\"color: #3366ff;\">Non-Working NTRIP Client connection, due to <span style=\"text-decoration: underline;\">a bad mountPt<\/span><br \/>\n<\/span><\/h4>\n<pre style=\"margin: 0in; margin-bottom: .0001pt; -qt-block-indent: 0; margin-left: 40px;\"> [<b><span style=\"color: blue;\">C16<\/span><\/b>]:\u00a0\u00a0Client [#C16] appears to an <b>NTRIP Client<\/b> connecting with:\r\n [<b><span style=\"color: blue;\">C16<\/span><\/b>]:\u00a0\u00a0An NTRIP Client sent: ======================\r\n [C16]:\r\n <span style=\"font-family: Courier New;\">GET \/BAD_MOUNTPT HTTP\/1.0\r\n User-Agent: NTRIP RTKLIB\/2.4.2\r\n Authorization: Basic dXNlcjpwYXNzd29yZA==\r\n <\/span>[<b><span style=\"color: blue;\">C16<\/span><\/b>]:\u00a0\u00a0 \u00a0 ======================\r\n [<b><span style=\"color: blue;\">BAD_MOUNTPT<\/span><\/b>]:\u00a0\u00a0No matching mount point, requested: [BAD_MOUNTPT], sending caster table and disconnecting.\r\n [<strong><span style=\"color: blue;\">BAD_MOUNTPT<\/span><\/strong>]:\u00a0\u00a0<span style=\"color: blue;\">Client #C16<\/span> [69.75.31.227:50138] <strong>Disconnect <\/strong>(tried to mount BAD_MOUNTPT, but not in table), 104 Bytes in, 959 Bytes out, Connected: 004 mSec<\/pre>\n<p>Here, because the requested mountPt is matched to the current caster table entries\u00a0<em>before<\/em> the user credentials, you will receive a console notice of this fact and the user\u2019s credentials will not be checked.<\/p>\n<h4><span style=\"color: #3366ff;\">Non-Working NTRIP Client connection, due to <span style=\"text-decoration: underline;\">a \u201cnear miss\u201d mountPt<\/span><br \/>\n<\/span><\/h4>\n<pre style=\"-qt-block-indent: 0; margin-left: 40px;\"> [<b><span style=\"color: blue;\">C17<\/span><\/b>]:\u00a0\u00a0Client [#C17] appears to an <b>NTRIP Client<\/b> connecting with:\r\n [<b><span style=\"color: blue;\">C17<\/span><\/b>]:\u00a0\u00a0An NTRIP Client sent: ======================\r\n [C17]:\r\n <span style=\"font-family: Courier New;\">GET \/MOUNTpt HTTP\/1.0\r\n User-Agent: NTRIP RTKLIB\/2.4.2\r\n Authorization: Basic dXNlcjpwYXNzd29yZA==\r\n <\/span>[<b><span style=\"color: blue;\">C17<\/span><\/b>]:\u00a0\u00a0 \u00a0 ======================\r\n [<b><span style=\"color: blue;\">MOUNTpt<\/span><\/b>]:\u00a0\u00a0No matching mount point, requested: [MOUNTpt], sending caster table and disconnecting.\r\n [<b><span style=\"color: blue;\">MOUNTpt<\/span><\/b>]:\u00a0\u00a0<b>Note:<\/b> The mountPt requested: [MOUNTpt], almost matches an entry but differs in <b>capitalization<\/b>.\r\n [<b><span style=\"color: blue;\">MOUNTpt<\/span><\/b>]:\u00a0\u00a0<b><span style=\"color: blue;\">Client #C17<\/span><\/b> [69.75.31.227:50374] Disconnect (tried to mount <b>MOUNTpt<\/b>, but <u>not<\/u> in table), 100 Bytes in, 959 Bytes out, Connected: <b>006 mSec<\/b><\/pre>\n<p>Here The requested mountPt is matched to the current caster table entries\u00a0<em>before<\/em> the user credentials, and if the mountPt string matched <u>except<\/u> for differences in capitalization, a slightly different console entry is produced noting this. The user is disconnected (the caster table is returned in the normal way) and the user\u2019s credentials will not be checked.<\/p>\n<p>&nbsp;<\/p>\n<p>This article has served to demonstrate console log entries for the the most common NTRIP Client user errors when the Caster is closed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article covers the various errors and reporting messages that can occur when SNIP is operating in a closed mode such that every new user (every NTRIP Client) must present a valid account and a password in order to log in. If SNIP is operating in an open mode, the [&hellip;]<\/p>\n","protected":false},"author":13,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"ht-kb-category":[112,283],"ht-kb-tag":[227,229,226,228],"class_list":["post-1830","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-general","ht_kb_category-managing-user-accounts","ht_kb_tag-bad-password","ht_kb_tag-closed-caster","ht_kb_tag-debug","ht_kb_tag-unknown-user"],"_links":{"self":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/1830","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/comments?post=1830"}],"version-history":[{"count":31,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/1830\/revisions"}],"predecessor-version":[{"id":5065,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/1830\/revisions\/5065"}],"wp:attachment":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/media?parent=1830"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-category?post=1830"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-tag?post=1830"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}