Re: [fossil-users] Fossil JSON API: How to create a wiki page?
Patches are welcomed :-D - stephan Sent from a mobile device, possibly from bed. Please excuse brevity, typos, and top-posting. On Jun 7, 2017 15:55, "Warren Young"wrote: On Jun 7, 2017, at 7:38 AM, Stephan Beal wrote: > > BTW- there is an API intended just for checking whether json is built in: /json/HAI (from lolcatz jargon... it made sense at the time (2011)). Then I have a new bug to file: it doesn’t respond KTHXBYE as it obviously should. http://www.lolcode.org/ ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil JSON API: How to create a wiki page?
On Jun 7, 2017, at 7:38 AM, Stephan Bealwrote: > > BTW- there is an API intended just for checking whether json is built in: > /json/HAI (from lolcatz jargon... it made sense at the time (2011)). Then I have a new bug to file: it doesn’t respond KTHXBYE as it obviously should. http://www.lolcode.org/ ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil JSON API: How to create a wiki page?
On Jun 7, 2017 03:59, "Warren Young"wrote: That’s a much simpler call. It doesn’t require any permissions, and it’s a GET call, not a POST call. That test proves little other than that you have a working JSON API in your local Fossil instance. BTW- there is an API intended just for checking whether json is built in: /json/HAI (from lolcatz jargon... it made sense at the time (2011)). ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil JSON API: How to create a wiki page?
Thanks Warren, The problem was related with the curled quotes. Now is working fine. The simpler test was because I was getting " curl: (6) Could not resolve host: -d So I was interested in see the host resolution with a simpler command. Cheers, Offray On 06/06/17 20:58, Warren Young wrote: > On Jun 6, 2017, at 5:51 PM, Offray Vladimir Luna Cárdenas> wrote: >> When I try something similar with: >> >> curl -H "Content-Type: application/json" \ -d '{"authToken": >> "mytoken",\ >>"payload": {"name": “foo", "content": "bar"}}' >> http://localhost:8081/json/wiki/create > You’re missing a backslash between the JSON string and the URL. > > The backslashes are largely for formatting reasons, so that I could continue > a long command onto multiple lines in the email. I recommend that you just > type this as a single command, not copy-paste it as shown in the email. > > Also, my mailer curled one of the quotes around “foo”, which you’ve copied > into your command, and that will break the JSON parser. It needs to be an > ASCII double quote. > > (I try to catch it when this happens, but sometimes my mailer is smarter than > I am.) > >> but if I do: >> >> curl http://localhost:8081/json/wiki/timeline >> >> I get: >> >> {"fossil":"81d7d3f43ebd4e77095cfbacee7ebc9ae043a014760cde56d437dbd8b6a37c92","timestamp":1496792951,"command":"wiki/timeline","procTimeUs":,"procTimeMs":3,"payload":{"limit":20,"timeline":[]}}% >> >> >> So, wiki is properly served via JSON API from the local host. > That’s a much simpler call. It doesn’t require any permissions, and it’s a > GET call, not a POST call. That test proves little other than that you have > a working JSON API in your local Fossil instance. > ___ > fossil-users mailing list > fossil-users@lists.fossil-scm.org > http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil JSON API: How to create a wiki page?
Sorry, that last one is wrong. Instead, change: http://fossil-scm.org/index.html/artifact?ln=1385=cc8d06a2d208ad00 To: while(0); tmp = 0 (with no trailing semicolon) - stephan Sent from a mobile device, possibly from bed. Please excuse brevity, typos, and top-posting. On Jun 7, 2017 05:21, "Stephan Beal"wrote: > Aaaand: add 1 line between these two: > > http://fossil-scm.org/index.html/artifact?ln=1380-1381; > name=cc8d06a2d208ad00 > > Add: > > tmp = 0; \ > > To avoid a separate (potential) corner case bug. > > > - stephan > Sent from a mobile device, possibly from bed. Please excuse brevity, > typos, and top-posting. > > On Jun 7, 2017 05:07, "Stephan Beal" wrote: > >> The error is triggered here: >> >> http://fossil-scm.org/index.html/artifact?ln=1518-1525= >> cc8d06a2d208ad00 >> >> Because of: >> ... Hmmm... i THINK (not certain) it's because >> json_respone_command_path() is, via, json_create_response() returning null >> because of missing data in g.json. It interprets that as an alloc error, >> but it's really a corner case. It could be fixed by adjusting: >> >> http://fossil-scm.org/index.html/artifact?ln=1413-1415= >> cc8d06a2d208ad00 >> >> To simply wrap that SET() callin if(tmp). >> >> i think. >> >> Wow, amazing what one can accomplish with fossil on a tablet from bed. >> >> >> >> >> - stephan >> Sent from a mobile device, possibly from bed. Please excuse brevity, >> typos, and top-posting. >> >> >> On Jun 7, 2017 04:44, "Stephan Beal" wrote: >> >> Here we go: >> http://fossil-scm.org/index.html/info/2accaaeeadd34cb6 >> >> >> >> - stephan >> Sent from a mobile device, possibly from bed. Please excuse brevity, >> typos, and top-posting. >> >> On Jun 7, 2017 04:41, "Stephan Beal" wrote: >> >>> Afaik, all errors except allocation failures do return the error in json >>> form (i had to jump through some hoops to get that working way back then, >>> due to fossil's fail-fast-via-exit() approach to error handling). The >>> mis-triggered alloc report here is, as you say, likely a side effect of >>> the null fields, and should be easy to fix. >>> >>> Note that you don't need http to feed data to the json layer. There is a >>> cli option (i think it's -json-input, but i am in bed so can't verify that >>> right now) which tells it to read the POST data from a file. >>> >>> >>> - stephan >>> Sent from a mobile device, possibly from bed. Please excuse brevity, >>> typos, and top-posting. >>> >>> On Jun 7, 2017 04:05, "Warren Young" wrote: >>> On Jun 6, 2017, at 5:58 PM, Stephan Beal wrote: > > If you leave quotes off of the property names, it's not json Yes, but that’s only one of the three problems here. The other two are: 1. It should diagnose the error correctly. (The error has nothing to do with memory allocation.) 2. It should return the error message via JSON to the client, not print it on the console. The JSON API is most likely to be used in cases where the called Fossil instance is running in the background, with stdio detached. > Why that shows up as a response allocation error, i can't say off hand. From what debugging I did, it’s because the parsing failure caused most of the fields of g.json to be unset, which causes multiple levels of NULL to be returned, which the scream-and-die code misinterprets as given. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users >>> >> ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil JSON API: How to create a wiki page?
Aaaand: add 1 line between these two: http://fossil-scm.org/index.html/artifact?ln=1380-1381=cc8d06a2d208ad00 Add: tmp = 0; \ To avoid a separate (potential) corner case bug. - stephan Sent from a mobile device, possibly from bed. Please excuse brevity, typos, and top-posting. On Jun 7, 2017 05:07, "Stephan Beal"wrote: > The error is triggered here: > > http://fossil-scm.org/index.html/artifact?ln=1518-1525; > name=cc8d06a2d208ad00 > > Because of: > ... Hmmm... i THINK (not certain) it's because json_respone_command_path() > is, via, json_create_response() returning null because of missing data in > g.json. It interprets that as an alloc error, but it's really a corner > case. It could be fixed by adjusting: > > http://fossil-scm.org/index.html/artifact?ln=1413-1415; > name=cc8d06a2d208ad00 > > To simply wrap that SET() callin if(tmp). > > i think. > > Wow, amazing what one can accomplish with fossil on a tablet from bed. > > > > > - stephan > Sent from a mobile device, possibly from bed. Please excuse brevity, > typos, and top-posting. > > > On Jun 7, 2017 04:44, "Stephan Beal" wrote: > > Here we go: > http://fossil-scm.org/index.html/info/2accaaeeadd34cb6 > > > > - stephan > Sent from a mobile device, possibly from bed. Please excuse brevity, > typos, and top-posting. > > On Jun 7, 2017 04:41, "Stephan Beal" wrote: > >> Afaik, all errors except allocation failures do return the error in json >> form (i had to jump through some hoops to get that working way back then, >> due to fossil's fail-fast-via-exit() approach to error handling). The >> mis-triggered alloc report here is, as you say, likely a side effect of >> the null fields, and should be easy to fix. >> >> Note that you don't need http to feed data to the json layer. There is a >> cli option (i think it's -json-input, but i am in bed so can't verify that >> right now) which tells it to read the POST data from a file. >> >> >> - stephan >> Sent from a mobile device, possibly from bed. Please excuse brevity, >> typos, and top-posting. >> >> On Jun 7, 2017 04:05, "Warren Young" wrote: >> >>> On Jun 6, 2017, at 5:58 PM, Stephan Beal wrote: >>> > >>> > If you leave quotes off of the property names, it's not json >>> >>> Yes, but that’s only one of the three problems here. The other two are: >>> >>> 1. It should diagnose the error correctly. (The error has nothing to do >>> with memory allocation.) >>> >>> 2. It should return the error message via JSON to the client, not print >>> it on the console. The JSON API is most likely to be used in cases where >>> the called Fossil instance is running in the background, with stdio >>> detached. >>> >>> > Why that shows up as a response allocation error, i can't say off hand. >>> >>> From what debugging I did, it’s because the parsing failure caused most >>> of the fields of g.json to be unset, which causes multiple levels of NULL >>> to be returned, which the scream-and-die code misinterprets as given. >>> ___ >>> fossil-users mailing list >>> fossil-users@lists.fossil-scm.org >>> http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users >>> >> > ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil JSON API: How to create a wiki page?
The error is triggered here: http://fossil-scm.org/index.html/artifact?ln=1518-1525=cc8d06a2d208ad00 Because of: ... Hmmm... i THINK (not certain) it's because json_respone_command_path() is, via, json_create_response() returning null because of missing data in g.json. It interprets that as an alloc error, but it's really a corner case. It could be fixed by adjusting: http://fossil-scm.org/index.html/artifact?ln=1413-1415=cc8d06a2d208ad00 To simply wrap that SET() callin if(tmp). i think. Wow, amazing what one can accomplish with fossil on a tablet from bed. - stephan Sent from a mobile device, possibly from bed. Please excuse brevity, typos, and top-posting. On Jun 7, 2017 04:44, "Stephan Beal"wrote: Here we go: http://fossil-scm.org/index.html/info/2accaaeeadd34cb6 - stephan Sent from a mobile device, possibly from bed. Please excuse brevity, typos, and top-posting. On Jun 7, 2017 04:41, "Stephan Beal" wrote: > Afaik, all errors except allocation failures do return the error in json > form (i had to jump through some hoops to get that working way back then, > due to fossil's fail-fast-via-exit() approach to error handling). The > mis-triggered alloc report here is, as you say, likely a side effect of > the null fields, and should be easy to fix. > > Note that you don't need http to feed data to the json layer. There is a > cli option (i think it's -json-input, but i am in bed so can't verify that > right now) which tells it to read the POST data from a file. > > > - stephan > Sent from a mobile device, possibly from bed. Please excuse brevity, > typos, and top-posting. > > On Jun 7, 2017 04:05, "Warren Young" wrote: > >> On Jun 6, 2017, at 5:58 PM, Stephan Beal wrote: >> > >> > If you leave quotes off of the property names, it's not json >> >> Yes, but that’s only one of the three problems here. The other two are: >> >> 1. It should diagnose the error correctly. (The error has nothing to do >> with memory allocation.) >> >> 2. It should return the error message via JSON to the client, not print >> it on the console. The JSON API is most likely to be used in cases where >> the called Fossil instance is running in the background, with stdio >> detached. >> >> > Why that shows up as a response allocation error, i can't say off hand. >> >> From what debugging I did, it’s because the parsing failure caused most >> of the fields of g.json to be unset, which causes multiple levels of NULL >> to be returned, which the scream-and-die code misinterprets as given. >> ___ >> fossil-users mailing list >> fossil-users@lists.fossil-scm.org >> http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users >> > ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil JSON API: How to create a wiki page?
Here we go: http://fossil-scm.org/index.html/info/2accaaeeadd34cb6 - stephan Sent from a mobile device, possibly from bed. Please excuse brevity, typos, and top-posting. On Jun 7, 2017 04:41, "Stephan Beal"wrote: > Afaik, all errors except allocation failures do return the error in json > form (i had to jump through some hoops to get that working way back then, > due to fossil's fail-fast-via-exit() approach to error handling). The > mis-triggered alloc report here is, as you say, likely a side effect of > the null fields, and should be easy to fix. > > Note that you don't need http to feed data to the json layer. There is a > cli option (i think it's -json-input, but i am in bed so can't verify that > right now) which tells it to read the POST data from a file. > > > - stephan > Sent from a mobile device, possibly from bed. Please excuse brevity, > typos, and top-posting. > > On Jun 7, 2017 04:05, "Warren Young" wrote: > >> On Jun 6, 2017, at 5:58 PM, Stephan Beal wrote: >> > >> > If you leave quotes off of the property names, it's not json >> >> Yes, but that’s only one of the three problems here. The other two are: >> >> 1. It should diagnose the error correctly. (The error has nothing to do >> with memory allocation.) >> >> 2. It should return the error message via JSON to the client, not print >> it on the console. The JSON API is most likely to be used in cases where >> the called Fossil instance is running in the background, with stdio >> detached. >> >> > Why that shows up as a response allocation error, i can't say off hand. >> >> From what debugging I did, it’s because the parsing failure caused most >> of the fields of g.json to be unset, which causes multiple levels of NULL >> to be returned, which the scream-and-die code misinterprets as given. >> ___ >> fossil-users mailing list >> fossil-users@lists.fossil-scm.org >> http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users >> > ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil JSON API: How to create a wiki page?
Afaik, all errors except allocation failures do return the error in json form (i had to jump through some hoops to get that working way back then, due to fossil's fail-fast-via-exit() approach to error handling). The mis-triggered alloc report here is, as you say, likely a side effect of the null fields, and should be easy to fix. Note that you don't need http to feed data to the json layer. There is a cli option (i think it's -json-input, but i am in bed so can't verify that right now) which tells it to read the POST data from a file. - stephan Sent from a mobile device, possibly from bed. Please excuse brevity, typos, and top-posting. On Jun 7, 2017 04:05, "Warren Young"wrote: > On Jun 6, 2017, at 5:58 PM, Stephan Beal wrote: > > > > If you leave quotes off of the property names, it's not json > > Yes, but that’s only one of the three problems here. The other two are: > > 1. It should diagnose the error correctly. (The error has nothing to do > with memory allocation.) > > 2. It should return the error message via JSON to the client, not print it > on the console. The JSON API is most likely to be used in cases where the > called Fossil instance is running in the background, with stdio detached. > > > Why that shows up as a response allocation error, i can't say off hand. > > From what debugging I did, it’s because the parsing failure caused most of > the fields of g.json to be unset, which causes multiple levels of NULL to > be returned, which the scream-and-die code misinterprets as given. > ___ > fossil-users mailing list > fossil-users@lists.fossil-scm.org > http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users > ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil JSON API: How to create a wiki page?
On Jun 6, 2017, at 5:58 PM, Stephan Bealwrote: > > If you leave quotes off of the property names, it's not json Yes, but that’s only one of the three problems here. The other two are: 1. It should diagnose the error correctly. (The error has nothing to do with memory allocation.) 2. It should return the error message via JSON to the client, not print it on the console. The JSON API is most likely to be used in cases where the called Fossil instance is running in the background, with stdio detached. > Why that shows up as a response allocation error, i can't say off hand. From what debugging I did, it’s because the parsing failure caused most of the fields of g.json to be unset, which causes multiple levels of NULL to be returned, which the scream-and-die code misinterprets as given. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil JSON API: How to create a wiki page?
On Jun 6, 2017, at 5:51 PM, Offray Vladimir Luna Cárdenaswrote: > > When I try something similar with: > > curl -H "Content-Type: application/json" \ -d '{"authToken": > "mytoken",\ >"payload": {"name": “foo", "content": "bar"}}' > http://localhost:8081/json/wiki/create You’re missing a backslash between the JSON string and the URL. The backslashes are largely for formatting reasons, so that I could continue a long command onto multiple lines in the email. I recommend that you just type this as a single command, not copy-paste it as shown in the email. Also, my mailer curled one of the quotes around “foo”, which you’ve copied into your command, and that will break the JSON parser. It needs to be an ASCII double quote. (I try to catch it when this happens, but sometimes my mailer is smarter than I am.) > but if I do: > > curl http://localhost:8081/json/wiki/timeline > > I get: > > {"fossil":"81d7d3f43ebd4e77095cfbacee7ebc9ae043a014760cde56d437dbd8b6a37c92","timestamp":1496792951,"command":"wiki/timeline","procTimeUs":,"procTimeMs":3,"payload":{"limit":20,"timeline":[]}}% > > > So, wiki is properly served via JSON API from the local host. That’s a much simpler call. It doesn’t require any permissions, and it’s a GET call, not a POST call. That test proves little other than that you have a working JSON API in your local Fossil instance. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil JSON API: How to create a wiki page?
If you leave quotes off of the property names, it's not json and the request cannot be parsed at all. Why that shows up as a response allocation error, i can't say off hand. It's a bug - the response should be that the request is missing data/parameters. - stephan Sent from a mobile device, possibly from bed. Please excuse brevity, typos, and top-posting. On Jun 6, 2017 23:04, "Warren Young"wrote: On Jun 6, 2017, at 1:09 PM, Offray Vladimir Luna Cárdenas wrote: > > I don't know how the page name is supposed to be given in the URL. The document you point to says it’s supposed to be sent in the payload, not in the request URL: $ curl -H "Content-Type: application/json" \ -d '{"authToken": "nunyabinness",\ "payload": {"name": “foo", "content": "bar"} }' \ http://localhost:8080/json/wiki/create Incidentally, I found a bug while working that incantation out: if you leave off the quotes around the property names, you get fossil: Fatal error: could not allocate response object on the console that is running the Fossil server instance. All errors that occur down the /json path should give a JSON reply, not kill off the forked child with a vague and highly nonhelpful error. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil JSON API: How to create a wiki page?
Thanks Warren for your quick answer. When I try something similar with: curl -H "Content-Type: application/json" \ -d '{"authToken": "mytoken",\ "payload": {"name": “foo", "content": "bar"}}' http://localhost:8081/json/wiki/create I get: curl: (6) Could not resolve host: -d curl: (3) [globbing] nested brace in column 141 {"fossil":"81d7d3f43ebd4e77095cfbacee7ebc9ae043a014760cde56d437dbd8b6a37c92","timestamp":1496792818,"resultCode":"FOSSIL-3002","resultText":"'name' parameter is missing.","command":"wiki/create","procTimeUs":0,"procTimeMs":0}% but if I do: curl http://localhost:8081/json/wiki/timeline I get: {"fossil":"81d7d3f43ebd4e77095cfbacee7ebc9ae043a014760cde56d437dbd8b6a37c92","timestamp":1496792951,"command":"wiki/timeline","procTimeUs":,"procTimeMs":3,"payload":{"limit":20,"timeline":[]}}% So, wiki is properly served via JSON API from the local host. What I'm missing? Cheers, Offray On 06/06/17 16:04, Warren Young wrote: > On Jun 6, 2017, at 1:09 PM, Offray Vladimir Luna Cárdenas> wrote: >> I don't know how the page name is supposed to be given in the URL. > The document you point to says it’s supposed to be sent in the payload, not > in the request URL: > > $ curl -H "Content-Type: application/json" \ >-d '{"authToken": "nunyabinness",\ > "payload": {"name": “foo", "content": "bar"} }' \ >http://localhost:8080/json/wiki/create > > Incidentally, I found a bug while working that incantation out: if you leave > off the quotes around the property names, you get > > fossil: Fatal error: could not allocate response object > > on the console that is running the Fossil server instance. All errors that > occur down the /json path should give a JSON reply, not kill off the forked > child with a vague and highly nonhelpful error. > ___ > fossil-users mailing list > fossil-users@lists.fossil-scm.org > http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Fossil JSON API: How to create a wiki page?
On Jun 6, 2017, at 1:09 PM, Offray Vladimir Luna Cárdenaswrote: > > I don't know how the page name is supposed to be given in the URL. The document you point to says it’s supposed to be sent in the payload, not in the request URL: $ curl -H "Content-Type: application/json" \ -d '{"authToken": "nunyabinness",\ "payload": {"name": “foo", "content": "bar"} }' \ http://localhost:8080/json/wiki/create Incidentally, I found a bug while working that incantation out: if you leave off the quotes around the property names, you get fossil: Fatal error: could not allocate response object on the console that is running the Fossil server instance. All errors that occur down the /json path should give a JSON reply, not kill off the forked child with a vague and highly nonhelpful error. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users