@@ -3,11 +3,12 @@
3 3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
4 4 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Jump to:
5 5 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
6 6 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
* [JSON Property Naming](#property-names)
7 7 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
* [HTTP GET Requests](#http-get)
8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- * [HTTP Post Requests](#http-post)
8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ * [HTTP POST Requests](#http-post)
9 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ * [POST Request Envelope](#request-envelope)
9 10 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
* [Request Parameter Data Types](#request-param-types)
10 11 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
* [Response Envelope](#response-envelope)
11 12 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
* [HTTP Response Headers](#http-response-header)
12 13 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
* [CLI vs. HTTP Mode](#cli-vs-http)
13 14 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
* [Simulating POSTed data](#simulating-post-data)
@@ -27,22 +28,23 @@
27 28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
28 29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
<a id="http-get"></a>
29 30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# HTTP GET Requests
30 31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
31 32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Many (if not most) requests can be made via simple GET requests, e.g. we
32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *could* use any of the following:
33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *could* use any of the following patterns for a hypothetical JSON-format
34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ timeline:
33 35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- - `http://..../timeline/json`
36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `https://..../timeline/json`
35 37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- `/timeline?format=json`
36 38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- `/timeline?json=1`
37 39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- `/timeline.json`
38 40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- `/json/timeline?...options...`
39 41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- After several discussions, the API settled on the `/json/...` convention,
41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- primarily because it simplifies dispatching and argument-handling logic
42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- compared to the `/[.../]foo.json` approach. Using `/json/...` allows us
43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- to unify that logic for all JSON sub-commands, for both CLI and HTTP modes.
42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ The API settled on the `/json/...` convention, primarily because it
43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ simplifies dispatching and argument-handling logic compared to the
44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ `/[.../]foo.json` approach. Using `/json/...` allows us to unify that
45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ logic for all JSON sub-commands, for both CLI and HTTP modes.
44 46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
45 47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
<a id="http-post"></a>
46 48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# HTTP Post Requests
47 49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
48 50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Certain requests, mainly things like editing checkin messages and
@@ -56,86 +58,42 @@
56 58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
57 59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
POST requests are sent to the same URL as their GET counterpart (if any,
58 60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
else their own path), and are sent as plain-text/unencoded JSON wrapped
59 61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
in a common request envelope with the following properties:
60 62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (TODO: convert to a simple list...)
62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ```
63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | requestId | Optional arbitrary JSON value, |
65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | not used by fossil, but returned |
66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | as-is in responses. |
67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | command | Provides a secondary mechanism |
69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | for specifying which JSON command |
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | should be run. A request path of |
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | /json/foo/bar is equivalent to a |
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | request with path=/json and |
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | command=foo/bar. Note that |
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | subpaths do *not* work this way. |
75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | e.g. path=/json/foo, command=bar |
76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | will not work, but path=/json, |
77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | command=foo/bar will. |
78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | |
79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | This option is particularly |
80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | useful when generating JSON for |
81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | piping in to CLI mode, but it |
82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | also has some |
83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | response-dispatching uses on the |
84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | client side. |
85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | authToken | Authentication token. Created by |
87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | a login request. Determines what |
88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | access rights the user has, and |
89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | any given request may require |
90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | specific rights. In principle |
91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | this is required by any request |
92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | which needs non-guest privileges, |
93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | but cookie-aware clients do not |
94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | manually need to track this (it |
95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | is managed as a cookie by the |
96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | agent/browser). |
97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | payload | Command-specific parameters. Most |
99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | can optionally come in via GET |
100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | parameters, but those taking |
101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | complex structures expect them to |
102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | be placed here. |
103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | indent | Optionally specifies indentation |
105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | for the output. 0=no indention. |
106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | 1=a single TAB character for each |
107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | level of indentation. >1 means |
108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | that many *spaces* per level. |
109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | e.g. indent=7 means to indent 7 |
110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | spaces per object/array depth |
111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | level. cson also supports other |
112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | flags for fine-tuning the output |
113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | spacing, and adding them to this |
114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | interface might be interesting at |
115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | some point. e.g. whether or not |
116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | to add a newline to the output.\ |
117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | CLI mode adds extra indentation |
118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | by default, whereas CGI/server |
119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | modes produce unindented output |
120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | by default. |
121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | jsonp | Optional String (client function |
123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | name). |
124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | |
125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | Requests which include this will |
126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | be returned with Content-Type |
127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | application/javascript and will |
128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | be wrapped up in a function call |
129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | using the given name. e.g. if |
130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | jsonp=foo then the result would |
131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | look like: |
132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | |
133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | foo( {...the response |
134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | envelope...} ) |
135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ```
63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `requestId`: Optional arbitrary JSON value, not used by fossil, but
64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ returned as-is in responses.
65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `command`: Provides a secondary mechanism for specifying which JSON
66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ command should be run. A request path of /json/foo/bar is equivalent
67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ to a request with path=/json and command=foo/bar. Note that subpaths
68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ do not work this way. e.g. path=/json/foo, command=bar will not
69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ work, but path=/json, command=foo/bar will. This option is
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ particularly useful when generating JSON for piping in to CLI mode,
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ but it also has some response-dispatching uses on the client side.
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `authToken`: Authentication token. Created by a login
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ request. Determines what access rights the user has, and any given
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ request may require specific rights. In principle this is required
75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ by any request which needs non-guest privileges, but cookie-aware
76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ clients do not manually need to track this (it is managed as a
77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cookie by the agent/browser).
78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `payload`: Command-specific parameters. Most can optionally come in
79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ via GET parameters, but those taking complex structures expect them
80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ to be placed here.
81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `indent`: Optionally specifies indentation for the output. 0=no
82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ indention. 1=a single TAB character for each level of
83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ indentation. >1 means that many spaces per level. e.g. indent=7
84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ means to indent 7 spaces per object/array depth level. cson also
85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ supports other flags for fine-tuning the output spacing, and adding
86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ them to this interface might be interesting at some
87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ point. e.g. whether or not to add a newline to the output. CLI mode
88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ adds extra indentation by default, whereas CGI/server modes produce
89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unindented output by default.
90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `jsonp`: Optional String (client function name). Requests which
91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ include this will be returned with `Content-Type
92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ application/javascript` and will be wrapped up in a function call
93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ using the given name. e.g. if `jsonp=foo` then the result would look like:\
94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ `foo( {...the response envelope...} )`
137 95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
138 96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
The API allows most of those (normally all but the payload) to come in
139 97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
as either GET parameters or properties of the top-level POSTed request
140 98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
JSON envelope, with GET taking priority over POST. (Reminder to self: we
141 99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
could potentially also use values from cookies. Fossil currently only
@@ -180,16 +138,17 @@
180 138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
181 139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
182 140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
```
183 141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
184 142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
When a given parameter is set in two places, e.g. GET and POST, or
185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- POST-from-a-file and CLI parameters, which one takes precedence depends
186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- on the concrete command handler (and may be unspecified). Most will give
187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- precedence to CLI and GET parameters, but POSTed values are technically
188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- preferred for non-string data because no additional "type guessing" or
189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- string-to-whatever conversion has to be made (GET/CLI parameters are
190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *always* strings, even if they look like a number or boolean).
143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ POST-from-a-file and CLI parameters, which one takes precedence
144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ depends on the concrete command handler (and may be unspecified). Most
145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ will give precedence to CLI and GET parameters, but POSTed values are
146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ technically preferred for non-string data because no additional "type
147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ guessing" or string-to-whatever conversion has to be made (GET/CLI
148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ parameters are *always* strings, even if they look like a number or
149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ boolean).
191 150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
192 151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
193 152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
<a id="request-param-types"></a>
194 153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# Request Parameter Data Types
195 154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -245,140 +204,71 @@
245 204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
246 205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Every response comes in the form of a HTTP response or (in CLI mode)
247 206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
JSON sent to stdout. The body of the response is a JSON object following
248 207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
a common envelope format. The envelope has the following properties:
249 208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (TODO: convert to a simple list...)
251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ```
252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | fossil | Fossil server version string. |
254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | This property is basically "the |
255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | official response envelope |
256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | marker" - if it is set, clients |
257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | can "probably safely assume" that |
258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | the object indeed came from one |
259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | of the Fossil/JSON APIs. This API |
260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | never creates responses which do |
261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | not contain this property. |
262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | requestId | Only set if the request contained |
264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | it, and then it is echoed back to |
265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | the caller as-is. This can be use |
266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | to determine (client-side) which |
267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | request a given response is |
268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | coming in for (assuming multiple |
269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | asynchronous requests are |
270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | pending). In practice this |
271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | generally isn’t needed because |
272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | response handling tends to be |
273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | done by closures associated with |
274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | the original request object (at |
275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | least in JavaScript code). In |
276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | languages without closures it |
277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | might have some use. It may be |
278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | any legal JSON value - it need |
279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | not be confined to a string or |
280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | number. |
281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | resultCode | Standardized result code string |
283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | in the form FOSSIL-\#\#\#\#.\ |
284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | *Only error responses* contain a |
285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | resultCode. |
286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | resultText | *Possibly* a descriptive string, |
288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | possibly empty. Supplements the |
289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | resultCode, but can also be set |
290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | on success responses (but |
291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | normally isn't). Clients must not |
292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | rely on any specific values being |
293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | set here. |
294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | payload | Request-specific response payload |
296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | (data type/structure is |
297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | request-specific). |
298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | |
299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | The payload is *never* set for |
300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | error responses, *only* for |
301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | success responses (and only those |
302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | which actually have a payload - |
303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | not all do). |
304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | timestamp | Response timestamp (GMT Unix |
306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | Epoch). We use seconds precision |
307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | because i did not know at the |
308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | time that Fossil actually records |
309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | millisecond precision. |
310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | payloadVersion | Not initially needed, but |
312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | reserved for future use in |
313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | maintaining version compatibility |
314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | when the format of a given |
315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | response type's payload changes. |
316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | If needed, the "first version" |
317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | value is assumed to be 0, for |
318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | semantic \[near-\]compatibility |
319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | with the undefined value clients |
320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | see when this property is not |
321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | set. |
322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | command | Normalized form of the command |
324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | being run. It consists of the |
325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | "command" (non-argument) parts of |
326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | the request path (or CLI |
327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | positional arguments), excluding |
328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | the initial "/json/" part. e.g. |
329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | the "command" part of |
330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | "/json/timeline/checkin?a=b" |
331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | (CLI: json timeline checkin...) |
332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | is "timeline/checkin" (both in |
333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | CLI and HTTP modes). |
334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | apiVersion | Not yet used, but reserved for a |
336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | numeric value which represents |
337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | the JSON API's version (which can |
338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | be used to determine if it has a |
339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | given feature or not). This will |
340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | not be implemented until it's |
341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | needed. |
342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | warnings | Reserved for future use as a |
344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | standard place to put non-fatal |
345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | warnings in responses. Will be an |
346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | array but the warning |
347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | structure/type is not yet |
348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | specified. Intended primarily as |
349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | a debugging tool, and will |
350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | "probably not" become part of the |
351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | public client interface. |
352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | g | Fossil administrators (those with |
354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | the "a" or "s" permissions) may |
355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | use the debugFossilG boolean |
356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | request parameter (CLI: |
357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | --json-debug-g) to enable this |
358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | property for any given response. |
359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | It contains a good deal of the |
360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | server-side internal state at the |
361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | time the response was generated, |
362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | which is often useful in |
363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | debuggering problems. Trivia: it |
364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | is called "g" because that's the |
365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | name of fossil's internal global |
366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | state object. |
367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | procTimeMs | For debugging only - generic |
369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | clients must not rely on this |
370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | property. Contains the number of |
371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | milliseconds the JSON command |
372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | processor needed to dispatch and |
373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | process the command. TODO: move |
374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | the timer into the fossil core so |
375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | that we can generically time its |
376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | responses and include the startup |
377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | overhead in the time calculation. |
378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ```
209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `fossil`: Fossil server version string. This property is basically
211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "the official response envelope marker" - if it is set, clients can
212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "probably safely assume" that the object indeed came from one of the
213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Fossil/JSON APIs. This API never creates responses which do not
214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ contain this property.
215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `requestId`: Only set if the request contained it, and then it is
216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ echoed back to the caller as-is. This can be use to determine
217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (client-side) which request a given response is coming in for
218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (assuming multiple asynchronous requests are pending). In practice
219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this generally isn’t needed because response handling tends to be
220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ done by closures associated with the original request object (at
221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ least in JavaScript code). In languages without closures it might
222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ have some use. It may be any legal JSON value - it need not be
223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ confined to a string or number.
224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `resultCode`: Standardized result code string in the form
225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ `FOSSIL-####`. Only error responses contain a `resultCode`.
226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `resultText`: Possibly a descriptive string, possibly
227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ empty. Supplements the resultCode, but can also be set on success
228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ responses (but normally isn't). Clients must not rely on any
229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ specific values being set here.
230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `payload`: Request-specific response payload (data type/structure is
231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ request-specific). The payload is never set for error responses,
232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ only for success responses (and only those which actually have a
233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ payload - not all do).
234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `timestamp`: Response timestamp (GMT Unix Epoch). We use seconds
235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ precision because i did not know at the time that Fossil actually
236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ records millisecond precision.
237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `payloadVersion`: Not initially needed, but reserved for future use
238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ in maintaining version compatibility when the format of a given
239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ response type's payload changes. If needed, the "first version"
240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ value is assumed to be 0, for semantic [near-]compatibility with the
241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ undefined value clients see when this property is not set.
242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `command`: Normalized form of the command being run. It consists of
243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ the "command" (non-argument) parts of the request path (or CLI
244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ positional arguments), excluding the initial "/json/" part. e.g. the
245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "command" part of "/json/timeline/checkin?a=b" (CLI: json timeline
246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ checkin...) is "timeline/checkin" (both in CLI and HTTP modes).
247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `apiVersion`: Not yet used, but reserved for a numeric value which
248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ represents the JSON API's version (which can be used to determine if
249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ it has a given feature or not). This will not be implemented until
250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ it's needed.
251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `warnings`: Reserved for future use as a standard place to put
252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ non-fatal warnings in responses. Will be an array but the warning
253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ structure/type is not yet specified. Intended primarily as a
254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ debugging tool, and will "probably not" become part of the public
255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ client interface.
256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `g`: Fossil administrators (those with the "a" or "s" permissions)
257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ may use the debugFossilG boolean request parameter (CLI:
258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ --json-debug-g) to enable this property for any given response. It
259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ contains a good deal of the server-side internal state at the time
260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ the response was generated, which is often useful in debuggering
261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ problems. Trivia: it is called "g" because that's the name of
262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil's internal global state object.
263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `procTimeMs`: For debugging only - generic clients must not rely on
264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this property. Contains the number of milliseconds the JSON command
265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ processor needed to dispatch and process the command. TODO: move the
266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ timer into the fossil core so that we can generically time its
267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ responses and include the startup overhead in the time calculation.
268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
380 270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
381 271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
<a id="http-response-header"></a>
382 272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# HTTP Response Headers
383 273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
384 274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
The Content-Type HTTP header of a response will be either
@@ -615,215 +505,115 @@
615 505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
[`src/json.c:json_err_cstr()`](/finfo/src/json.c). Changes there need
616 506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
to be reflected here (and vice versa). Also, we have assertions in
617 507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
place to ensure that C-side codes are in the range 1000-9999, so do
618 508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
not just go blindly change the numeric ranges used by the enum.
619 509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- TODO: convert to plain list:
621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ```
623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | **FOSSIL-0###** | **Non-error Category** |
625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-0000 | Success/not an error. Succesful |
627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | responses do not contain a |
628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | resultCode, so clients should |
629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | never see this. |
630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-0### | Reserved for *potential* future |
632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | use in reporting non-fatal |
633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | warnings. |
634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | |
636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | **FOSSIL-1000** | **Generic Errors Category** |
638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-1101 | Invalid request. Request envelope |
640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | is invalid or missing. |
641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-1102 | Unknown command. This is only |
643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | useful if we dispatch all |
644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | /json/XXX paths through a central |
645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | dispatcher and the XXX part is an |
646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | unknown command. |
647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-1103 | Unknown/unspecified error |
649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-1104 | RE-USE |
651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-1105 | A server-side timeout was |
653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | reached. (i’m not sure we can |
654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | actually implement this one, |
655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | though.) |
656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-1106 | Assertion failed (or would have |
658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | had we continued). Note: if an |
659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | assert() fails in CGI/server |
660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | modes, the HTTP response will be |
661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | code 500 (Internal Server Error). |
662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | We want to avoid that and return |
663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | a JSON response instead. |
664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | |
665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | All of that said - i have no real |
666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | intention of implementing this, |
667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | since assertions are "truly |
668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | serious" errors. |
669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-1107 | Allocation/out of memory error.\ |
671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | There is a way to report this via |
672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | JSON without allocating further |
673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | memory. Well, depending on where |
674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | exactly it happens. That said, |
675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | much of the code does not check |
676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | this condition or asserts() if an |
677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | alloc fails. |
678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | |
679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | Fossil's internal allocator |
680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | abort()s on OOM, so we can't |
681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | actually implement this, only |
682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | reserve it for use with, e.g., |
683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | libfossil. |
684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-1108 | Requested API is not yet |
686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | implemented. |
687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-1109 | Panic! Fossil's `fossil_panic()` |
689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | or `cgi_panic()`was called. In |
690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | non-JSON HTML mode this produces |
691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | an HTTP 500 error. Clients |
692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | "should" report this as a |
693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | potential bug, as it "possibly" |
694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | indicates that the C code has |
695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | incorrect argument- or error |
696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | handling somewhere. |
697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-1110 | Reading of artifact manifest |
699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | failed. Time to contact your |
700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | local fossil guru. |
701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-1111 | Opening of file failed (e.g. POST |
703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | data provided to CLI mode). |
704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | |
706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | **FOSSIL-2000** | **Authentication/Access Error |
708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | Category** |
709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-2001 | Privileged request was missing |
711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | authentication token/cookie. |
712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-2002 | Access to requested resource was |
714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | denied. Oftentimes the resultText |
715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | property will contain a |
716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | human-language description of the |
717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | access rights needed for the |
718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | given command. |
719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-2003 | Requested command is not |
721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | available in the current |
722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | operating mode. Returned in CLI |
723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | mode by commands which require |
724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | HTTP mode (e.g. login), and vice |
725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | versa. |
726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | |
728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-2100 | Login Failed. |
730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-2101 | Anonymous login attempt is |
732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | missing the "anonymousSeed" |
733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | property (fetched via the |
734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | /json/anonymousPassword request). |
735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | Note that this is more specific |
736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | form of FOSSIL-3002. |
737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | **ONLY FOR TESTING purposes |
739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | should the remaning 210X |
740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | sub-codes be enabled (they are |
741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | potentially security-relevant, in |
742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | that the client knows which part |
743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | of the request was |
744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | valid/invalid)** |
745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-2102 | Name not supplied in login |
747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | request |
748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-2103 | Password not supplied in login |
750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | request |
751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-2104 | No name/password match found |
753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | |
755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | **FOSSIL-3000** | **Usage Error Category** |
757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-3001 | Invalid argument/parameter |
759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | type(s) or value(s) in request |
760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-3002 | Required argument(s)/parameter(s) |
762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | missing from request |
763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-3003 | Requested resource identifier is |
765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | ambiguous (e.g. a shortened UUID |
766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | can be ambiguous). |
767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-3004 | Unresolved resource identifier. A |
769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | branch/tag/uuid provided by |
770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | client code could not be |
771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | resolved.\ |
772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | This is a special case of #3006. |
773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-3005 | Resource already exists and |
775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | overwriting/replacing is not |
776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | allowed. e.g. trying to create a |
777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | wiki page or user which already |
778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | exists. |
779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | |
780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | FIXME? Consolidate this and |
781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | resource-not-found into a |
782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | separate category for dumb-down |
783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | purposes? |
784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-3006 | Requested resource not found. e.g |
786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | artifact ID, branch name, etc. |
787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | |
789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | **FOSSIL-4000** | **Database-related Error |
791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | Category** |
792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-4001 | Statement preparation failed. |
794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-4002 | Parameter binding failed. |
796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-4003 | Statement execution failed. |
798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-4004 | Database locked (this is not used |
800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | anywhere, but reserved for future |
801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | use). |
802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | **Special-case DB-related |
804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | errors...** |
805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-4101 | Fossil Schema out of date (repo |
807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | rebuild required). |
808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-4102 | Fossil repo db could not be |
810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | found. |
811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-4103 | Repository db is not valid |
813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | (possibly corrupt). |
814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | FOSSIL-4104 | Check-out not found. This is |
816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | similar to FOSSIL-4102 but |
817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | indicates that a local checkout |
818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | is required (but was not found). |
819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | Note that the 4102 gets triggered |
820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | earlier than this one, and so can |
821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | appear in cases when a user might |
822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | | otherwise expect a 4104 error. |
823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- +-----------------------------------+-----------------------------------+
824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ```
510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **`FOSSIL-0###`: Non-error Category**
512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-0000`: Success/not an error. Succesful responses do not
514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ contain a resultCode, so clients should never see this.
515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-0###`: Reserved for potential future use in reporting
516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ non-fatal warnings.
517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **`FOSSIL-1000`: Generic Errors Category**
521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-1101`: Invalid request. Request envelope is invalid or
523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ missing.
524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-1102`: Unknown JSON command.
525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-1103`: Unknown/unspecified error
526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-1104`: RE-USE
527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-1105`: A server-side timeout was reached. (i’m not sure we
528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ can actually implement this one, though.)
529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-1106`: Assertion failed (or would have had we
530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ continued). Note: if an `assert()` fails in CGI/server modes, the HTTP
531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ response will be code 500 (Internal Server Error). We want to avoid
532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ that and return a JSON response instead. All of that said - there seems
533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ to be little reason to implementi this, since assertions are "truly
534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ serious" errors.
535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-1107`: Allocation/out of memory error. This cannot be reasonably
536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ reported because fossil aborts if an allocation fails.
537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-1108`: Requested API is not yet implemented.
538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-1109`: Panic! Fossil's `fossil_panic()` or `cgi_panic()` was
539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ called. In non-JSON HTML mode this produces an HTTP 500
540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ error. Clients "should" report this as a potential bug, as it
541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "possibly" indicates that the C code has incorrect argument- or
542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ error handling somewhere.
543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-1110`: Reading of artifact manifest failed. Time to contact
544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ your local fossil guru.
545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-1111`: Opening of file failed (e.g. POST data provided to
546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CLI mode).
547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **`FOSSIL-2000`: Authentication/Access Error Category**
550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-2001`: Privileged request was missing authentication
552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ token/cookie.
553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-2002`: Access to requested resource was denied. Oftentimes
554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ the `resultText` property will contain a human-language description of
555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ the access rights needed for the given command.
556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-2003`: Requested command is not available in the current
557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ operating mode. Returned in CLI mode by commands which require HTTP
558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ mode (e.g. login), and vice versa. FIXME: now that we can simulate
559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ POST in CLI mode, we can get rid of this distinction for some of the
560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ commands.
561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-2100`: Login Failed.
562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-2101`: Anonymous login attempt is missing the
563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "anonymousSeed" property (fetched via [the `/json/anonymousPassword`
564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ request](api-auth.md#login-anonymous)). Note that this is more
565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ specific form of `FOSSIL-3002`.
566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ONLY FOR TESTING purposes should the remaning 210X sub-codes be
569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ enabled (they are potentially security-relevant, in that the client
570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ knows which part of the request was valid/invalid):
571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-2102`: Name not supplied in login request
573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-2103`: Password not supplied in login request
574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-2104`: No name/password match found
575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **`FOSSIL-3000`: Usage Error Category**
578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-3001`: Invalid argument/parameter type(s) or value(s) in
580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ request
581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-3002`: Required argument(s)/parameter(s) missing from
582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ request
583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-3003`: Requested resource identifier is ambiguous (e.g. a
584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ shortened UUID can be ambiguous).
585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-3004`: Unresolved resource identifier. A branch/tag/uuid
586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ provided by client code could not be resolved. This is a special
587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case of #3006.
588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-3005`: Resource already exists and overwriting/replacing is
589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ not allowed. e.g. trying to create a wiki page or user which already
590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ exists. FIXME? Consolidate this and resource-not-found into a
591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ separate category for dumb-down purposes?
592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-3006`: Requested resource not found. e.g artifact ID, branch
593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ name, etc.
594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **`FOSSIL-4000`: Database-related Error Category**
597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-4001`: Statement preparation failed.
599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-4002`: Parameter binding failed.
600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-4003`: Statement execution failed.
601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-4004`: Database locked (this is not used anywhere, but
602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ reserved for future use).
603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Special-case DB-related errors...
605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-4101`: Fossil Schema out of date (repo rebuild required).
607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-4102`: Fossil repo db could not be found.
608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-4103`: Repository db is not valid (possibly corrupt).
609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - `FOSSIL-4104`: Check-out not found. This is similar to FOSSIL-4102
610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ but indicates that a local checkout is required (but was not
611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ found). Note that the 4102 gets triggered earlier than this one, and
612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ so can appear in cases when a user might otherwise expect a 4104
613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ error.
614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
825 615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
826 616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Some of those error codes are of course "too detailed" for the client to
827 617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
do anything with (e.g.. 4001-4004), but their intention is to make it
828 618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
easier for Fossil developers to (A) track down problems and (B) support
829 619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
clients who report problems. If a client reports, "I get a FOSSIL-4000,
830 620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!