diff --git a/.directory b/.directory deleted file mode 100755 index ed63c19..0000000 --- a/.directory +++ /dev/null @@ -1,5 +0,0 @@ -[Dolphin] -Timestamp=2017,6,16,15,30,52 -Version=4 -ViewMode=1 -VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_type,CustomizedDetails diff --git a/LBGenerator.tar.gz b/LBGenerator.tar.gz index 48aa5fc..ee9b4f1 100644 Binary files a/LBGenerator.tar.gz and b/LBGenerator.tar.gz differ diff --git a/ez_i.bash b/ez_i.bash index 46188d2..3eaf69c 100755 --- a/ez_i.bash +++ b/ez_i.bash @@ -2,7 +2,7 @@ : 'Trata-se de um módulo que oferece uma série de funcionalidades para criar um instalador usando "bash". -Version 1.1.0b +Version 1.2.0b Apache License Version 2.0, January 2004 @@ -146,8 +146,8 @@ f_ez_sed_ecp() { : '"Escapar" strings para o comando "sed". Como há muitas semelhanças entre o escape para "sed" ("f_ez_sed") e - escape para "grep" ("f_fl_cont_str") optei por colocar essa - função como utilitária para as outras duas citadas. + escape para "grep" ("f_fl_cont_str") optei por colocar essa função + como utilitária para as outras duas. Args: VAL_TO_ECP (str): Valor a ser "escapado". @@ -171,10 +171,23 @@ f_ez_sed_ecp() { DONT_ECP_SQ=0 fi F_EZ_SED_ECP_R=$VAL_TO_ECP + + # NOTE: Com essa intervenção conseguimos passar argumentos para um comando + # "sed" mesmo que o texto tenha quebras de linha! By Questor + F_EZ_SED_ECP_R=$(echo -n "$F_EZ_SED_ECP_R" | awk 'BEGIN {RS="dn"} {gsub("\n","\\n"); printf $0}') + + # NOTE: Para os casos onde "\n" faz parte dos argumentos. Nesses casos + # os argumentos possuem "\n" em vez de quebras de linha efetivamente. Se + # desabilitado "\n" será tratado como texto e não será convertido para + # quebras! By Questor if [ ${DONT_ECP_NL} -eq 1 ] ; then F_EZ_SED_ECP_R=$(echo "$F_EZ_SED_ECP_R" | sed 's/\\n/C0673CECED2D4A8FBA90C9B92B9508A8/g') fi + + # NOTE: Escapa valores, principalmente, para serem aplicados como + # argumentos em um comando de replace no "sed"! By Questor F_EZ_SED_ECP_R=$(echo "$F_EZ_SED_ECP_R" | sed 's/[]\/$*.^|[]/\\&/g') + if [ ${DONT_ECP_SQ} -eq 0 ] ; then F_EZ_SED_ECP_R=$(echo "$F_EZ_SED_ECP_R" | sed "s/'/\\\x27/g") fi @@ -197,10 +210,15 @@ f_ez_sed() { REPLACE. Padrão 0. DONT_ECP_NL (Optional[int]): 1 - Não "escapa" "\n" (quebra de linha); 0 - "Escapa" "\n". Padrão 1. + NOTE: Para os casos onde "\n" faz parte dos argumentos. Nesses casos + os argumentos possuem "\n" em vez de quebras de linha efetivamente. Se + desabilitado "\n" será tratado como texto e não será convertido para + quebras; REMOVE_LN (Optional[int]): 1 - Remove a linha que possui o valor em TARGET; 0 - Faz o replace convencional. Padrão 0. NTH_OCCUR (Optional[int]): Executará a operação escolhida - apenas sobre a ocorrência indicada; Se -1, não executa. Padrão -1. + apenas sobre a ocorrência indicada (utilize 2 para fazer replace apenas + na 2 ocorrencia, por exemplo); Se -1, não executa. Padrão -1. ' FILE=$3 @@ -602,8 +620,8 @@ F_GET_STDERR_R="" F_GET_STDOUT_R="" F_GET_EXIT_CODE_R=0 f_get_stderr_stdout() { - : 'Executar um comando e colocar a saída de stderr e stdout nas - variáveis "F_GET_STDERR_R" e "F_GET_STDOUT_R"!. + : 'Executar um comando e capturar a saída de stderr, stdout e + o "exit code". Args: CMD_TO_EXEC (str): Comando a ser executado. @@ -611,6 +629,7 @@ f_get_stderr_stdout() { Returns: F_GET_STDERR_R (str): Saída para stderr. F_GET_STDOUT_R (str): Saída para stdout. + F_GET_EXIT_CODE_R (int): Código de saída. ' CMD_TO_EXEC=$1 @@ -618,9 +637,9 @@ f_get_stderr_stdout() { F_GET_STDOUT_R="" unset t_std t_err t_ret eval "$( eval "$CMD_TO_EXEC" 2> >(t_err=$(cat); typeset -p t_err) > >(t_std=$(cat); typeset -p t_std); t_ret=$?; typeset -p t_ret )" - F_GET_EXIT_CODE_R=$t_ret F_GET_STDERR_R=$t_err F_GET_STDOUT_R=$t_std + F_GET_EXIT_CODE_R=$t_ret } YES_NO_R=0 @@ -878,16 +897,18 @@ f_split() { # NOTE: Devido a limitações do bash temos alguns problemas para # poder obter a saída de um split via awk dentro de um array e # por isso precisamos do uso da "quebra de linha" (\n) para - # termos sucesso! Visto isso, removemos as quebras de linha - # momentaneamente depois as reintegramos! By Questor - TARGET_P=$(echo "$TARGET_P" | awk 'BEGIN {RS="dn" } {gsub("\n","£§¢¬¨") ;printf $0 }') + # termos sucesso. Visto isso, removemos as quebras de linha + # momentaneamente depois as reintegramos. O problema é que se + # houver quebra de linha na "string" passada, essa quebra se + # perde, ou seja, é erroneamente eliminada da saída! By Questor + TARGET_P=$(echo "$TARGET_P" | awk 'BEGIN {RS="dn" } {gsub("\n","3f2c417d448c46918289218b7337fcaf") ;printf $0 }') fi SPLIT_NOW=$(awk -F"$DELIMITER_P" '{for(i=1;i<=NF;i++){printf "%s\n", $i}}' <<<"${TARGET_P}") while IFS= read -r LINE_NOW; do if [ ${REMOVE_N} -eq 1 ] ; then - LN_NOW_WITH_N=$(awk 'BEGIN {RS="dn"} {gsub("£§¢¬¨","\n") ;printf $0 }' <<<"${LINE_NOW}") + LN_NOW_WITH_N=$(awk 'BEGIN {RS="dn"} {gsub("3f2c417d448c46918289218b7337fcaf","\n") ;printf $0 }' <<<"${LINE_NOW}") F_SPLIT_R+=("$LN_NOW_WITH_N") else F_SPLIT_R+=("$LINE_NOW") @@ -1496,6 +1517,28 @@ f_procs_qtt() { fi } +F_GET_UUID_R="" +f_get_uuid() { + : 'Gerar e retornar um UUID. + + Args: + REM_DASH_P (Optional[int]): 0 - Não remove os "-" (traços); 1 - + Remove os "-" (traços). Padrão 0. + + Returns: + F_GET_UUID_R (str): UUID gerado. + ' + + REM_DASH_P=$1 + if [ -z "$REM_DASH_P" ] ; then + REM_DASH_P=0 + fi + F_GET_UUID_R=$(cat /proc/sys/kernel/random/uuid) + if [ ${REM_DASH_P} -eq 1 ] ; then + F_GET_UUID_R="${F_GET_UUID_R//-}" + fi +} + # < -------------------------------------------------------------------------- # > -------------------------------------------------------------------------- diff --git a/install.bash b/install.bash index 6ea9079..9c993fc 100755 --- a/install.bash +++ b/install.bash @@ -107,8 +107,12 @@ INSTRUCT_F="" # < -------------------------------------------------------------------------- +# NOTE: A razão para a existência dessas variáveis é "abistrair" o +# funcionamento de "f_about_distro" que obtêm informações a partir de +# dados da própria distro e portanto sujeito a variações! By Questor DISTRO_TYPE="" DISTRO_NAME="" + # > ----------------------------------------- # Checar se a distro é compatível! @@ -459,18 +463,16 @@ f_svc_helper() { SVC_HLP_IN_SILENCE (Optional[int]): 1 - Sem saída para o terminal; 0 - Com saída para o terminal. Padrão 0. ' - SVC_HLP_NM_P=$1 SVC_HLP_CMD_P=$2 - SVC_HLP_IN_SILENCE=$3 if [ -z "$SVC_HLP_IN_SILENCE" ] ; then SVC_HLP_IN_SILENCE=0 fi + SVC_HLP_SILENCE_CMD="" if [ ${SVC_HLP_IN_SILENCE} -eq 1 ] ; then SVC_HLP_SILENCE_CMD=" &>/dev/null" fi - if [[ "$DISTRO_TYPE" == "RH" ]] ; then eval "systemctl $SVC_HLP_CMD_P $SVC_HLP_NM_P.service$SVC_HLP_SILENCE_CMD" elif [[ "$DISTRO_TYPE" == "SUSE" ]] ; then @@ -539,7 +541,6 @@ f_open_section f_div_section f_yes_no "Install $ES_NAME?" if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then - f_common_packs f_chk_by_path_hlp "/usr/local/elasticsearch" "d" "\"elasticsearch-1.7.5.tar.gz\" already installed in \"/usr/local/elasticsearch\"!" F_BAK_MD_R=1 if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then @@ -553,6 +554,7 @@ if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then fi fi if [ ${F_BAK_MD_R} -eq 1 ] ; then + f_common_packs if [[ "$DISTRO_TYPE" == "RH" ]] ; then f_pack_is_inst "java-1.8.0-openjdk" "yum" "\"java-1.8.0-openjdk\" already installed!" if [ ${F_PACK_IS_INST_R} -eq 0 ] ; then @@ -587,8 +589,8 @@ if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then f_ez_sed "#http.jsonp.enable: true" "#http.jsonp.enable: true\n\n# It will not be accessible to others server (nodes) and will not discover\n# other server (nodes).\nnode.local: true" "/usr/local/elasticsearch/config/elasticsearch.yml" fi $ES_SERV_CMD start + f_fire_hlp "elasticsearch" 9200 fi - f_fire_hlp "elasticsearch" 9200 ES_INST=1 fi f_close_section @@ -652,8 +654,8 @@ Use empty for \"$PG_PWD_F\"!" PG_PWD_F=$GET_USR_INPUT_R fi QUESTION_F="Enter one ip or ip range for external access. -e.g. \"172.20.143.89/32\" for a single host or \"172.20.143.0/24\" for a small network or \"10.6.0.0/16\" for a larger one! -Use empty for local access only!" +Use empty for local access only! +* e.g. \"172.20.143.89/32\" for a single host or \"172.20.143.0/24\" for a small network or \"10.6.0.0/16\" for a larger one!" f_div_section f_get_usr_input "$QUESTION_F" 1 QUESTION_F="" @@ -2005,7 +2007,6 @@ if [ ${EZ_I_SKIP_ON_V} -eq 1 ] || [ ${YES_NO_R} -eq 1 ] ; then fi case "$HTTP_SRV_WSGI" in u) - HTTP_PORT_W=8007 QUESTION_F="Enter the port number for NGINX service. Use empty for \"$HTTP_PORT_W\" (recommended)!" f_div_section @@ -2018,7 +2019,6 @@ Use empty for \"$HTTP_PORT_W\" (recommended)!" f_fire_hlp "NGINX" $HTTP_PORT_W ;; p) - HTTP_PORT_W=8007 QUESTION_F="Enter the port number for NGINX service. Use empty for \"$HTTP_PORT_W\" (recommended)!" f_div_section @@ -2032,7 +2032,6 @@ Use empty for \"$HTTP_PORT_W\" (recommended)!" f_fire_hlp "NGINX" $HTTP_PORT_W ;; a) - HTTP_PORT_W=8007 QUESTION_F="Enter the port number for Apache (httpd) service. Use empty for \"$HTTP_PORT_W\" (recommended)!" f_div_section @@ -2077,7 +2076,6 @@ Use empty for \"$PG_CFG_F\"!" if [ -n "$GET_USR_INPUT_R" ] ; then PG_CFG_F=$GET_USR_INPUT_R fi - HTTP_PORT_A=8008 QUESTION_F="Enter the port number for LBG - LBGenerator service. Use empty for \"$HTTP_PORT_A\" (recommended)!" f_div_section @@ -2088,7 +2086,7 @@ Use empty for \"$HTTP_PORT_A\" (recommended)!" fi f_fire_hlp "LBG - LBGenerator" $HTTP_PORT_A QUESTION_F="Enter the LBG - LBGenerator base URL. -Use empty for \"$APP_ROOT_F\" (will result in http:///$APP_ROOT_F)!" +Use empty for \"$APP_ROOT_F\" (will result in http://:$HTTP_PORT_A/$APP_ROOT_F)!" f_div_section f_get_usr_input "$QUESTION_F" 1 QUESTION_F="" @@ -2226,7 +2224,7 @@ Use empty for \"$REQ_TIMEOUT\"$TOO_LOW_REQ_TIMEOUT f_ez_sed "" "$LBI_LBINDEX_URL" "$BASE_INST_DIR_V/lbg_ve32/src/LBGenerator/production.ini" f_ez_sed "" "$ES_ESDEF_URL" "$BASE_INST_DIR_V/lbg_ve32/src/LBGenerator/production.ini" f_ez_sed "" "$PG_CFG_F" "$BASE_INST_DIR_V/lbg_ve32/src/LBGenerator/production.ini" 1 - f_ez_sed "" "$APP_ROOT_F" "$BASE_INST_DIR_V/lbg_ve32/src/LBGenerator/production.ini" 1 + f_ez_sed "" "$APP_ROOT_F" "$BASE_INST_DIR_V/lbg_ve32/src/LBGenerator/production.ini" f_chk_by_path_hlp "$NGINX_CONF_PATH/lbg.conf" "f" "\"lbg.conf\" already created in \"$NGINX_CONF_PATH/lbg.conf\"!" F_BAK_MD_R=1 if [ ${F_CHK_BY_PATH_HLP_R} -eq 1 ] ; then @@ -2330,9 +2328,7 @@ if [ ${CONF_PG} -eq 1 ] || [ ${CREATE_LB_DT} -eq 1 ] ; then fi if [ -n "$CONF_PG_VL$CREATE_LB_DT_VL" ] ; then - PERSIST_CONFIG=" LBG - LBGenerator $PG_NAME persistence config...$CREATE_LB_DT_VL$CONF_PG_VL - -" + PERSIST_CONFIG=" LBG - LBGenerator $PG_NAME persistence config...$CREATE_LB_DT_VL$CONF_PG_VL" fi fi @@ -2343,17 +2339,13 @@ if [ ${PG_INST} -eq 1 ] ; then To start/stop... systemctl start $PG_SERV_NAME.service - systemctl stop $PG_SERV_NAME.service - -" + systemctl stop $PG_SERV_NAME.service" else PG_SVC_INFO=" $PG_NAME To start/stop... service $PG_SERV_NAME start - service $PG_SERV_NAME stop - -" + service $PG_SERV_NAME stop" fi fi @@ -2363,9 +2355,7 @@ if [ ${ES_INST} -eq 1 ] ; then To start/stop... $ES_SERV_CMD start - $ES_SERV_CMD stop - -" + $ES_SERV_CMD stop" fi UWSGI_SVC_INFO="" @@ -2387,9 +2377,7 @@ if [ ${UWSGI_INST} -eq 1 ] ; then vi $BASE_INST_DIR_V/uwsgi_ve32/src/uWSGI/production.ini Log... - less /var/log/uwsgi.log - -" + less /var/log/uwsgi.log" fi SVISOR_SVC_INFO="" @@ -2420,9 +2408,7 @@ if [ ${SVISOR_INST} -eq 1 ] ; then \"[eventlistener:memmon]\" in supervisord.conf! python$PYTHON_2_X virtual environment path... - $BASE_INST_DIR_V/$VE_2_X - -" + $BASE_INST_DIR_V/$VE_2_X" fi APACHE_SVC_INFO="" @@ -2456,9 +2442,7 @@ if [ ${APACHE_INST} -eq 1 ] ; then vi $HTTPD_CONF_PATH/lbg.conf Log... - less $VAR_LOG_HTTPD/$ERROR_LOG_FL - -" + less $VAR_LOG_HTTPD/$ERROR_LOG_FL" fi NGINX_SVC_INFO="" @@ -2483,9 +2467,7 @@ if [ ${NGINX_INST} -eq 1 ] ; then vi $NGINX_CONF_PATH/lbg.conf Log... - less /var/log/nginx/error.log - -" + less /var/log/nginx/error.log" fi LBG_SVC_INFO="" @@ -2518,13 +2500,51 @@ if [ ${LBG_INST} -eq 1 ] ; then $BASE_INST_DIR_V/py32 python3.2 virtual environment path... - $BASE_INST_DIR_V/lbg_ve32 - -" + $BASE_INST_DIR_V/lbg_ve32" fi if [ -n "$PG_SVC_INFO$ES_SVC_INFO$SVISOR_SVC_INFO$APACHE_SVC_INFO$NGINX_SVC_INFO$LBG_SVC_INFO" ] ; then - USEFUL_INFO_F="$PG_SVC_INFO$PERSIST_CONFIG$ES_SVC_INFO$SVISOR_SVC_INFO$UWSGI_SVC_INFO$APACHE_SVC_INFO$NGINX_SVC_INFO$LBG_SVC_INFO" + + # NOTE: First item! By Questor + USEFUL_INFO_F="$PG_SVC_INFO" + + # TODO: Inserir a flag "-e" em todos "echos" de funcionalidades que + # "printam" mensagens para o usuário no "ez_i.bash"? By Questor + + # NOTE: There is no way to represent a literal (\n in case) for "echo" + # without using the "-e" flag! By Questor + USEFUL_INFO_NEW_LINES=" + +" + + if [ -n "$USEFUL_INFO_F" ] && [ -n "$PERSIST_CONFIG" ] ; then + USEFUL_INFO_F="$USEFUL_INFO_F$USEFUL_INFO_NEW_LINES" + fi + USEFUL_INFO_F="$USEFUL_INFO_F$PERSIST_CONFIG" + if [ -n "$USEFUL_INFO_F" ] && [ -n "$ES_SVC_INFO" ] ; then + USEFUL_INFO_F="$USEFUL_INFO_F$USEFUL_INFO_NEW_LINES" + fi + USEFUL_INFO_F="$USEFUL_INFO_F$ES_SVC_INFO" + if [ -n "$USEFUL_INFO_F" ] && [ -n "$SVISOR_SVC_INFO" ] ; then + USEFUL_INFO_F="$USEFUL_INFO_F$USEFUL_INFO_NEW_LINES" + fi + USEFUL_INFO_F="$USEFUL_INFO_F$SVISOR_SVC_INFO" + if [ -n "$USEFUL_INFO_F" ] && [ -n "$UWSGI_SVC_INFO" ] ; then + USEFUL_INFO_F="$USEFUL_INFO_F$USEFUL_INFO_NEW_LINES" + fi + USEFUL_INFO_F="$USEFUL_INFO_F$UWSGI_SVC_INFO" + if [ -n "$USEFUL_INFO_F" ] && [ -n "$APACHE_SVC_INFO" ] ; then + USEFUL_INFO_F="$USEFUL_INFO_F$USEFUL_INFO_NEW_LINES" + fi + USEFUL_INFO_F="$USEFUL_INFO_F$APACHE_SVC_INFO" + if [ -n "$USEFUL_INFO_F" ] && [ -n "$NGINX_SVC_INFO" ] ; then + USEFUL_INFO_F="$USEFUL_INFO_F$USEFUL_INFO_NEW_LINES" + fi + USEFUL_INFO_F="$USEFUL_INFO_F$NGINX_SVC_INFO" + if [ -n "$USEFUL_INFO_F" ] && [ -n "$LBG_SVC_INFO" ] ; then + USEFUL_INFO_F="$USEFUL_INFO_F$USEFUL_INFO_NEW_LINES" + fi + USEFUL_INFO_F="$USEFUL_INFO_F$LBG_SVC_INFO" else USEFUL_INFO_F=" Nothing was installed!" fi diff --git a/lbn-basic-dt-strt/lb_basic_dt_strt.sql b/lbn-basic-dt-strt/lb_basic_dt_strt.sql index 5173174..a46b520 100755 --- a/lbn-basic-dt-strt/lb_basic_dt_strt.sql +++ b/lbn-basic-dt-strt/lb_basic_dt_strt.sql @@ -687,7 +687,7 @@ COPY lb_base (id_base, name, struct, dt_base, idx_exp, idx_exp_url, idx_exp_time 2 _form {"content":[{"field":{"name":"id_base","datatype":"Integer","required":true,"alias":"id_base","multivalued":false,"indices":["Textual"],"description":"Base ID."}},{"field":{"name":"author","datatype":"Text","required":true,"alias":"author","multivalued":false,"indices":["Textual"],"description":"Event Author."}},{"field":{"name":"name","datatype":"Text","required":true,"alias":"name","multivalued":false,"indices":["Textual"],"description":"Form name."}},{"field":{"name":"description","datatype":"Text","required":true,"alias":"description","multivalued":false,"indices":["Textual"],"description":"Form description."}},{"field":{"name":"structure","datatype":"Json","required":true,"alias":"structure","multivalued":false,"indices":["Textual"],"description":"Form structure"}}],"metadata":{"admin_users":[],"color":"#000000","description":"LightBase's Form Meta Base.","dt_base":"01/01/2017 00:00:00","file_ext":false,"file_ext_time":0,"idx_exp":false,"idx_exp_time":0,"idx_exp_url":"","id_base":2,"name":"_form","owner":"","password":"","txt_mapping":"","model":{"author":"Text","description":"Text","id_base":"Integer","name":"Text","structure":"Json"}}} 2017-01-01 00:00:00 f 0 f 0 3 _history {"content":[{"field":{"alias":"id_base","description":"Base old ID.","name":"id_base","datatype":"Integer","indices":["Textual"],"required":true,"multivalued":false}},{"field":{"alias":"author","description":"Event Author.","name":"author","datatype":"Text","indices":["Textual"],"required":true,"multivalued":false}},{"field":{"alias":"date","description":"Event Date.","name":"date","datatype":"DateTime","indices":["Textual"],"required":true,"multivalued":false}},{"field":{"alias":"name","description":"Base old name.","name":"name","datatype":"Text","indices":["Textual"],"required":true,"multivalued":false}},{"field":{"alias":"structure","description":"Base old structure","name":"structure","datatype":"Json","indices":["Textual"],"required":true,"multivalued":false}},{"field":{"alias":"status","description":"Base status","name":"status","datatype":"Text","indices":["Textual"],"required":true,"multivalued":false}}],"metadata":{"admin_users":[],"color":"#000000","description":"LightBase - History Meta Base.","dt_base":"01/01/2017 00:00:00","file_ext":false,"file_ext_time":0,"idx_exp":false,"idx_exp_time":0,"idx_exp_url":"","id_base":3,"name":"_history","owner":"","password":"","txt_mapping":"","model":{"author":"Text","date":"DateTime","id_base":"Integer","name":"Text","status":"Text","structure":"Json"}}} 2017-01-01 00:00:00 f 0 f 0 7 _user {"content":[{"field":{"alias":"id","description":"LightBase's uses ID","name":"id_user","datatype":"Integer","indices":["Textual","Ordenado"],"required":true,"multivalued":false}},{"field":{"alias":"name","description":"User's name","name":"name_user","datatype":"Text","indices":["Textual","Ordenado"],"required":true,"multivalued":false}},{"field":{"alias":"email","description":"User's mail","name":"email_user","datatype":"Text","indices":["Textual","Ordenado"],"required":true,"multivalued":false}},{"field":{"alias":"passwd","description":"User's password","name":"passwd_user","datatype":"Text","indices":["Textual","Ordenado"],"required":true,"multivalued":false}},{"group":{"content":[{"field":{"alias":"name_base","description":"Name of the base the user can access","name":"name_base","datatype":"Text","indices":["Textual","Ordenado","Fuzzy"],"required":false,"multivalued":false}},{"field":{"alias":"access_type","description":"Type of access the user has","name":"access_type","datatype":"Text","indices":["Textual","Ordenado"],"required":false,"multivalued":false}}],"metadata":{"alias":"bases","description":"List of bases that the user can access and what kind of access it is","multivalued":true,"name":"bases_user"}}},{"field":{"alias":"creation_date","description":"Date the user account was created","name":"creation_date_user","datatype":"Date","indices":["Textual","Ordenado"],"required":true,"multivalued":false}},{"field":{"alias":"status","description":"Check if the user is activer or not","name":"status_user","datatype":"Boolean","indices":["Textual","Ordenado"],"required":true,"multivalued":false}}],"metadata":{"admin_users":[],"color":"#000000","description":"LightBase's Users Meta Base.","dt_base":"01/01/2017 00:00:00","file_ext":false,"file_ext_time":0,"idx_exp":false,"idx_exp_time":0,"idx_exp_url":"","id_base":7,"name":"_user","owner":"","password":"","txt_mapping":"","model":{"creation_date_user":"Date","email_user":"Text","id_user":"Integer","name_user":"Text","passwd_user":"Text","status_user":"Boolean","bases_user":[{"access_type":"Text","name_base":"Text"}]}}} 2017-01-01 00:00:00 f 0 f 0 -8 app_user {"content":[{"field":{"name":"id_user","datatype":"Text","required":true,"alias":"id_user","multivalued":false,"indices":["Textual","Ordenado"],"description":"LightBase's uses ID"}},{"field":{"name":"name_user","datatype":"Text","required":true,"alias":"name","multivalued":false,"indices":["Textual","Ordenado"],"description":"User's name"}},{"field":{"name":"email_user","datatype":"Text","required":true,"alias":"email","multivalued":false,"indices":["Textual","Ordenado"],"description":"User's mail"}},{"field":{"name":"passwd_user","datatype":"Text","required":true,"alias":"passwd","multivalued":false,"indices":["Textual","Ordenado"],"description":"User's password"}},{"field":{"name":"bases","datatype":"Integer","required":false,"alias":"bases","multivalued":true,"indices":["Textual"],"description":"Id doc list the base the user is owner"}},{"field":{"name":"forms","datatype":"Integer","required":false,"alias":"forms","multivalued":true,"indices":["Textual"],"description":"Id doc list of the form where user can access"}},{"field":{"name":"reports","datatype":"Text","required":false,"alias":"reports","multivalued":true,"indices":["Textual"],"description":"Id doc list of the report where user can access"}},{"group":{"content":[{"field":{"name":"id","datatype":"Integer","required":true,"alias":"id","multivalued":false,"indices":["Textual"],"description":"Id doc of element"}},{"field":{"name":"type","datatype":"Text","required":true,"alias":"type","multivalued":false,"indices":["Textual"],"description":"Types allowed form, base and report"}}],"metadata":{"multivalued":true,"alias":"shortcuts","name":"shortcuts","description":"List of shortcuts of user"}}},{"field":{"name":"creation_date_user","datatype":"Date","required":true,"alias":"creation_date","multivalued":false,"indices":["Textual","Ordenado"],"description":"Date the user account was created"}},{"field":{"name":"status_user","datatype":"Boolean","required":true,"alias":"status","multivalued":false,"indices":["Textual","Ordenado"],"description":"Check if the user is activer or not"}}],"metadata":{"admin_users":[],"color":"#000000","description":"LightBase's Users Meta Base.","dt_base":"01/01/2017 00:00:00","file_ext":false,"file_ext_time":0,"idx_exp":false,"idx_exp_time":0,"idx_exp_url":"","id_base":8,"name":"app_user","owner":"","password":"","txt_mapping":"","model":{"bases":["Integer"],"creation_date_user":"Date","email_user":"Text","forms":["Integer"],"id_user":"Text","name_user":"Text","passwd_user":"Text","reports":["Text"],"status_user":"Boolean","shortcuts":[{"id":"Integer","type":"Text"}]}}} 2017-01-01 00:00:00 f 0 f 0 +8 app_user {"content":[{"field":{"name":"id_user","datatype":"Text","required":true,"alias":"id_user","multivalued":false,"indices":["Textual","Ordenado"],"description":"LightBase's uses ID"}},{"field":{"name":"name_user","datatype":"Text","required":true,"alias":"name","multivalued":false,"indices":["Textual","Ordenado"],"description":"User's name"}},{"field":{"name":"email_user","datatype":"Text","required":true,"alias":"email","multivalued":false,"indices":["Textual","Ordenado"],"description":"User's mail"}},{"field":{"name":"passwd_user","datatype":"Text","required":true,"alias":"passwd","multivalued":false,"indices":["Textual","Ordenado"],"description":"User's password"}},{"field":{"name":"bases","datatype":"Integer","required":false,"alias":"bases","multivalued":true,"indices":["Textual"],"description":"Id doc list the base the user is owner"}},{"field":{"name":"forms","datatype":"Integer","required":false,"alias":"forms","multivalued":true,"indices":["Textual"],"description":"Id doc list of the form where user can access"}},{"field":{"name":"reports","datatype":"Integer","required":false,"alias":"reports","multivalued":true,"indices":["Textual"],"description":"Id doc list of the report where user can access"}},{"field":{"name":"searchs","datatype":"Integer","required":false,"alias":"searchs","multivalued":true,"indices":["Textual"],"description":"Id doc list of the search where user can access"}},{"group":{"content":[{"field":{"name":"id","datatype":"Integer","required":true,"alias":"id","multivalued":false,"indices":["Textual"],"description":"Id doc of element"}},{"field":{"name":"type","datatype":"Text","required":true,"alias":"type","multivalued":false,"indices":["Textual"],"description":"Types allowed form, base and report"}}],"metadata":{"multivalued":true,"alias":"shortcuts","name":"shortcuts","description":"List of shortcuts of user"}}},{"field":{"name":"creation_date_user","datatype":"Date","required":true,"alias":"creation_date","multivalued":false,"indices":["Textual","Ordenado"],"description":"Date the user account was created"}},{"field":{"name":"status_user","datatype":"Boolean","required":true,"alias":"status","multivalued":false,"indices":["Textual","Ordenado"],"description":"Check if the user is activer or not"}}],"metadata":{"admin_users":[],"color":"#000000","description":"LightBase's Users Meta Base.","dt_base":"01/01/2017 00:00:00","file_ext":false,"file_ext_time":0,"idx_exp":false,"idx_exp_time":0,"idx_exp_url":"","id_base":8,"name":"app_user","owner":"","password":"","txt_mapping":"","model":{"bases":["Integer"],"creation_date_user":"Date","email_user":"Text","forms":["Integer"],"id_user":"Text","name_user":"Text","passwd_user":"Text","reports":["Integer"],"searchs":["Integer"],"status_user":"Boolean","shortcuts":[{"id":"Integer","type":"Text"}]}}} 2017-01-01 00:00:00 f 0 f 0 9 log_lbconverter {"content":[{"field":{"name":"nm_base","datatype":"Text","required":true,"alias":"Nome da base","multivalued":false,"indices":["Ordenado"],"description":"Nome da base"}},{"field":{"name":"id_doc_orig","datatype":"Integer","required":true,"alias":"id_doc_orig","multivalued":false,"indices":["Textual","Ordenado"],"description":"id do documento que originou o erro."}},{"field":{"name":"id_file_orig","datatype":"Text","required":true,"alias":"id_file_orig","multivalued":false,"indices":["Textual"],"description":"ID do arquivo que originou o erro."}},{"field":{"name":"file_name","datatype":"Text","required":true,"alias":"file_name","multivalued":false,"indices":["Ordenado"],"description":"File name"}},{"field":{"name":"error_msg","datatype":"Text","required":true,"alias":"Mensagem de erro","multivalued":false,"indices":["Nenhum"],"description":"Mensagem de erro"}},{"field":{"name":"dt_error","datatype":"DateTime","required":true,"alias":"Data do erro","multivalued":false,"indices":["Textual","Ordenado"],"description":"Data do erro"}}],"metadata":{"admin_users":[],"color":"#000000","description":"LightBase - Log de erros do LBConverter","dt_base":"01/01/2017 00:00:00","file_ext":false,"file_ext_time":0,"idx_exp":false,"idx_exp_time":0,"idx_exp_url":"","id_base":9,"name":"log_lbconverter","owner":"","password":"","txt_mapping":"","model":{"dt_error":"DateTime","error_msg":"Text","file_name":"Text","id_doc_orig":"Integer","id_file_orig":"Text","nm_base":"Text"}}} 2017-01-01 00:00:00 f 0 f 0 5 _report {"content":[{"field":{"name":"id_base","datatype":"Integer","required":true,"alias":"id_base","multivalued":false,"indices":["Textual"],"description":"Base ID."}},{"field":{"name":"author","datatype":"Text","required":true,"alias":"author","multivalued":false,"indices":["Textual"],"description":"Event Author."}},{"field":{"name":"name","datatype":"Text","required":true,"alias":"name","multivalued":false,"indices":["Textual"],"description":"Report name."}},{"field":{"name":"description","datatype":"Text","required":true,"alias":"description","multivalued":false,"indices":["Textual"],"description":"Report description."}},{"field":{"name":"structure","datatype":"Json","required":true,"alias":"structure","multivalued":false,"indices":["Textual"],"description":"Report structure"}}],"metadata":{"admin_users":[],"color":"#000000","description":"LightBase's Report Meta Base.","dt_base":"01/01/2017 00:00:00","file_ext":false,"file_ext_time":0,"idx_exp":false,"idx_exp_time":0,"idx_exp_url":"","id_base":5,"name":"_report","owner":"","password":"","txt_mapping":"","model":{"author":"Text","description":"Text","id_base":"Integer","name":"Text","structure":"Json"}}} 2017-01-01 00:00:00 f 0 f 0 10 log_lbindex {"content":[{"field":{"alias":"Nome da base","description":"Nome da base","name":"nm_base","datatype":"Text","indices":["Ordenado"],"required":true,"multivalued":false}},{"field":{"alias":"identificador do documento","description":"id do documento que originou o erro.","name":"id_doc_orig","datatype":"Integer","indices":["Textual","Ordenado"],"required":true,"multivalued":false}},{"field":{"alias":"Mensagem de erro","description":"Mensagem de erro","name":"error_msg","datatype":"Text","indices":["Nenhum"],"required":true,"multivalued":false}},{"field":{"alias":"Data do erro","description":"Data e Hora no formato DD/MM/AAAA - HH:MM:SS do erro","name":"dt_error","datatype":"DateTime","indices":["Textual","Ordenado"],"required":true,"multivalued":false}},{"field":{"alias":"dt_last_up_orig","description":"Data e Hora no formato DD/MM/AAAA - HH:MM:SS da última atualização do registro que originou o erro.","name":"dt_last_up_orig","datatype":"DateTime","indices":["Textual","Ordenado"],"required":true,"multivalued":false}}],"metadata":{"admin_users":[],"color":"#000000","description":"LightBase - Log de erros do LBIndex","dt_base":"01/01/2017 00:00:00","file_ext":false,"file_ext_time":0,"idx_exp":false,"idx_exp_time":0,"idx_exp_url":"","id_base":10,"name":"log_lbindex","owner":"","password":"","txt_mapping":"","model":{"dt_error":"DateTime","dt_last_up_orig":"DateTime","error_msg":"Text","id_doc_orig":"Integer","nm_base":"Text"}}} 2017-01-01 00:00:00 f 0 f 0 diff --git a/liblightbase.tar.gz b/liblightbase.tar.gz index e275adf..84aae0e 100644 Binary files a/liblightbase.tar.gz and b/liblightbase.tar.gz differ -- libgit2 0.21.2