add config options:
db_startup_connection_max_attempts - default 0 (infinite)
db_startup_connection_attempt_delay - delay in seconds between attempts (default 5)
BREAKING CHANGE: WINIX_PLUGIN_INIT plugin message requires to set result status,
you have to set the result status to true (env.res) if your
plugin was initialized correctly, otherwise winix will not start
Added methods:
void AddParam(const std::wstring & param_name, const std::wstring & param_value);
void AddParam(const wchar_t * param_name, const wchar_t * param_value);
void RemoveParam(const wchar_t * param_name);
void RemoveParam(const std::wstring & param_name);
This is only temporarily, we will be using the pt::Space structure in the future.
Environment variables must be prefixed with winix_ to be loaded by winix.
The winix_ prefix is then removed and the key value converted to lowercase.
Sample:
evn WINIX_MY_OPTION=TEST123test winix -c config_file
This will add my_option to the config with value TEST123test.
Environment variables are read last so they will overwrite the values
from the configuration files.
Usage: winix [options]
-c : a path to the config file
--config : a path to the config file
-h : print usage information
--help : print usage information
-? : print usage information
While here:
- let it be possible to parse multiple configs,
- fix: some error messages were not printed at startup.
winixcli can now read a PGModeler file
and is able to generate a template through ezc
winixcli parameters:
--input-mode pgmodeler (only one parameter at the moment)
--input-file file (pgmodeler file)
--templates-dir dir_path (a path to templates directory)
--template file (template file)
- emacs editor has an option to select markdown, now it has two planes: one for content editing and the other to show preview
- CodeMirror editor updated to 5.64.0
- to convert markdown to html we use showdown https://github.com/showdownjs/showdown (conversion is done on the client side)
now winix can return json, xml, csv from out_main_stream or from frames and json from models
removed from Request:
bool send_bin_stream
bool return_json
bool return_info_only
pt::Space info
bool page_generated
bool out_main_stream_use_html_filter
bool out_streams_use_html_filter
added to Request:
enum AnswerSource
enum AnswerContainer
AnswerSource answer_source
AnswerContainer answer_container
bool use_ezc_engine
std::wstring frame
bool send_all_frames
bool use_html_filter
added to Config:
// the name of the url parameter for returning all frames, e.g. https://domain.tld/mydir/myfunction/allframes
// default: allframes
std::wstring request_all_frames_parameter;
// the name of the root element when serializing request answer to xml
// default: winix
std::wstring xml_root;
algorithm (the whole algorithm is described in core/request.h):
at the beginning of a request winix sets
answer_source to models
answer_container to text
use_ezc_engine to true
next answer_container and use_ezc_engine can be changed in the following way:
1. winix will look for 'Accept' http header and depending on the header winix will set:
(not implemented yet)
Accept | answer_container | use_ezc_engine
------------------------------------|-----------------
application/json | json | false
application/xml | xml | false
text/csv | csv | false
2. next answer_container is set depending on 'container' url parameter
container | answer_container
---------------------------------------------------------
not present | don't change the value
text | text
json | json
xml | xml
csv | csv
use_ezc_engine is set depending on 'answer' url parameter:
answer | use_ezc_engine
---------------------------------
not present | don't change the value
html | true
data | false
if 'answer' is html then we take into account two more parameters:
frame: frame_name (empty default) - if set then winix returns this specific frame
allframes: (if present then winix returns all frames)