blendb issueshttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues2017-08-11T13:55:07Zhttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/32Adicionar mais testes ao adaptador2017-08-11T13:55:07ZLucas Fernandes de OliveiraAdicionar mais testes ao adaptadorO adaptador postgres está com cobertura muito abaixo em relação a outras áreas do BlenDB. Algumas situações deixaram de ser cobertas pelos testes com a refatoração do adaptador, por exemplo a condição na qual a agregação COUNT é feita em...O adaptador postgres está com cobertura muito abaixo em relação a outras áreas do BlenDB. Algumas situações deixaram de ser cobertas pelos testes com a refatoração do adaptador, por exemplo a condição na qual a agregação COUNT é feita em uma View que não é a origem.
Algumas situações que envolvem filtros também não são cobertas.
Criar testes para cobrir essas aréas.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/29Atualizar Adaptador do Postgres - Geração de consultas2017-08-08T18:36:33ZLucas Fernandes de OliveiraAtualizar Adaptador do Postgres - Geração de consultasBásicamente no BlenDB uma consulta é representada como uma view.
A API faz o tradução dos atributos e transforma em um objeto do tipo Query.
Esse objeto do tipo Query é enviado a Engine que transforma em um Objeto do tipo View.
Uma vi...Básicamente no BlenDB uma consulta é representada como uma view.
A API faz o tradução dos atributos e transforma em um objeto do tipo Query.
Esse objeto do tipo Query é enviado a Engine que transforma em um Objeto do tipo View.
Uma view contém informações sobre quais dados estão disponiveis através dela (métricas e dimenções) e contém um conjunto de views filhas, que serão usadas como fonte de dados, a menos que a view seja materializada.
O algoritmo de geração de consultas recebe uma view e traduz em uma string SQL que é aceita pelo postgres. Isso é feito através de um processo recursivo, gerando as consultas das views filhas e então as usando como fonte (Tabelas) de dados.
Acredito que é possivel ao invés de gerar consultas para as views filhas e depois as utilizar como fonte de dados é possivel apenas identificar os pontos de interesse daquela view e propagar esses dados para "cima". Acredito que isso pode deixar a consulta mais eficiente além de facilitar manutenções e alterações.
A proposta dessa tarefa é encontrar a fonte real dos dados e subir essa informação e realizar apenas uma camada de JOINS apenas com as tabelas reais/materializadas.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/26Mudar padrão de nomes de metricas e dimensões2017-08-03T13:44:33ZLucas Fernandes de OliveiraMudar padrão de nomes de metricas e dimensõesMetricas e dimensões podem ter qualquer string como nome, entretanto é adotado um padrão. O padrão agora é utilizar CamelCase (Letras maiusculas são separadores de palavras, ao invés de _ - ou ' '), dimensões começam com a palavra dim se...Metricas e dimensões podem ter qualquer string como nome, entretanto é adotado um padrão. O padrão agora é utilizar CamelCase (Letras maiusculas são separadores de palavras, ao invés de _ - ou ' '), dimensões começam com a palavra dim seguida de : seguida do nome e metricas começam com a palavra met seguida de : seguida da função de agregação sefuinda de : seguida de nome.
Atualizar os nomes fora do padrão (não é necessário nos testes)Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/18ConfigParser não converte sub-dimensões2017-08-01T13:44:28ZLucas Fernandes de OliveiraConfigParser não converte sub-dimensõesConfigParser consegue detectar subdimensões no arquivo de configuração mas não as cria como subdimensões.
Alterar para converter subdimensões. Verificar se mudança no arquivo de configuração é necessáriaConfigParser consegue detectar subdimensões no arquivo de configuração mas não as cria como subdimensões.
Alterar para converter subdimensões. Verificar se mudança no arquivo de configuração é necessáriaLucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/28Atualizar mensagem de erro na API2017-08-25T13:17:19ZLucas Fernandes de OliveiraAtualizar mensagem de erro na APIQuando uma requisição falha pode ser por vários motivos, métrica não encontrada ou dimensão não encontrada, mas as respostas das requisições pouco informam sobre isso, apenas dizem que deu um erro. Modifica-las para serem mais informativ...Quando uma requisição falha pode ser por vários motivos, métrica não encontrada ou dimensão não encontrada, mas as respostas das requisições pouco informam sobre isso, apenas dizem que deu um erro. Modifica-las para serem mais informativas, apenas acrescentar a causa do erro na maioria dos casos deve ser o suficienteLucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/30Remover ChildView2017-08-09T11:46:41ZLucas Fernandes de OliveiraRemover ChildViewChidView é uma classe auxiliar que representa views filhas de outra view. É composta pelas metricas e dimensões que a filha cobre da mãe, e uma referencia para o objeto do tipo View da filha. Essa classe era essencialmente usada para o a...ChidView é uma classe auxiliar que representa views filhas de outra view. É composta pelas metricas e dimensões que a filha cobre da mãe, e uma referencia para o objeto do tipo View da filha. Essa classe era essencialmente usada para o adaptador que precisava saber quem cobria o que. Com a refatoração do adaptador (#29) essa estrutura foi completamente removida do adaptador.
Verificar se há outras partes do código onde essa estrutura é realmente necessária ou se pode ser substituida apenas com a classe View. Se esse for o caso remover todas as referencias para ChildView.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/33Melhorar função de analise dos filtros2017-10-16T11:49:30ZLucas Fernandes de OliveiraMelhorar função de analise dos filtrosA escolha de views e agregações é limitada pelos filtros aplicados. No momento apenas se o filtro casar perfeitamente (tem que se identico) a view é escolhida. En varios casos é o suficiente (Para operadores == e !=), porém com o operado...A escolha de views e agregações é limitada pelos filtros aplicados. No momento apenas se o filtro casar perfeitamente (tem que se identico) a view é escolhida. En varios casos é o suficiente (Para operadores == e !=), porém com o operador de > por exemplo, se a restrição é de maior que 3 meses, maior que 6 meses também poderia utilizar essa view, mas isso não ocorre.
Operadores individuais parecem simples de resolver, bastaria olhar o operador do filtro e aplicar algumas comparações, entretanto quando combinados com operador OR (maior que 3 meses ou ativo) já não funciona tão bem.
Acredito que o melhor é analizar alguns casos que seriam mais úteis que e que mais ocorrem e tentar abordar esse modelo mais restrito do que acertar 100% dos casos.
Encontrar essa lista de casos e melhorar a escolha dos filtros, a principio modificar a função checkConstranits da classe graph deve ser o suficiente para aplicar as mudanças.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/39Função de agregação MAX e MIN não foram definidas2017-08-25T11:57:51ZLucas Fernandes de OliveiraFunção de agregação MAX e MIN não foram definidasAdicionar MAX e MIN ao tipo AggregationType e adcionar nos respectilos locais necessários (ConfigParser e PostgresAdapter se não me engano)Adicionar MAX e MIN ao tipo AggregationType e adcionar nos respectilos locais necessários (ConfigParser e PostgresAdapter se não me engano)Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/40Atualizar modo como métricas, dimensões e views são referenciadas nos testes.2017-08-25T12:34:29ZLucas Fernandes de OliveiraAtualizar modo como métricas, dimensões e views são referenciadas nos testes.Durante os testes as métricas, dimensões e views são lidas e armazenadas em vetores. Até a Issue #39) isso não foi um problema, mas agora em todos os testes isso deve ser corrigido. A princio uma mudança no arquivo de scenario, que conce...Durante os testes as métricas, dimensões e views são lidas e armazenadas em vetores. Até a Issue #39) isso não foi um problema, mas agora em todos os testes isso deve ser corrigido. A princio uma mudança no arquivo de scenario, que concentra todos os testes e lê do arquivo de configuração grande parte dos dados usados nos testes deve concertar o problema. Mas ainda assim outros locais devem ser conferidos e subtitiuidos.
Encontrar referências a métricas, dimensões e views que utilizam índice e realizar a ordenação apropriada para corrigir o erro de forma mais rápida.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/52Adicionar verificação de texto (linter) ao projeto2017-12-04T10:54:01ZLucas Fernandes de OliveiraAdicionar verificação de texto (linter) ao projetoEmbora o projeto tenha uma configuração de linter ele não é utilizado ao gerar uma build. Falhar a build se o projeto não atender os padrões do linter.Embora o projeto tenha uma configuração de linter ele não é utilizado ao gerar uma build. Falhar a build se o projeto não atender os padrões do linter.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/54Reestrututar arquivos de configuração2017-12-20T11:17:26ZLucas Fernandes de OliveiraReestrututar arquivos de configuraçãoTransformar os campos struct e connection em variáveis de ambiente.Transformar os campos struct e connection em variáveis de ambiente.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/65Adicionar rota para tipos enumerais e campo no arquivo de configuração2018-04-04T13:11:37ZLucas Fernandes de OliveiraAdicionar rota para tipos enumerais e campo no arquivo de configuraçãoAdicionar um novo campo ao arquivo de configuração que permite definir tipos enumeráveis. Esses tipos estão disponíveis para o campo "datatype".
Essa rota deve listar as fontes existentes:
* [x] Criar classe EnumType -- ```src/core/enu...Adicionar um novo campo ao arquivo de configuração que permite definir tipos enumeráveis. Esses tipos estão disponíveis para o campo "datatype".
Essa rota deve listar as fontes existentes:
* [x] Criar classe EnumType -- ```src/core/enumType.ts```
* [x] Ler Enums a partir do arquivo de configuração -- ```src/util/configParser.ts```
* [x] Adicionar as enums lidas a Engine -- ```src/core/engine.ts```
* [x] Criar a rota no arquivo RAML -- ```spec/*.raml```
* [x] Adcionar um rota no controller da engine que devolve as fontes -- ```src/api/controllers/engine.ts```
O enum basicamente é uma lista de strings, no arquivo de configuração uma lista de strings deve ser lidas, essa representa os valores possíveis.
Para ler do arquivo de configuração há dois campos
name: nome do enum
values: uma lista (de strings) com os valores possíveis1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/60Criação de views materializadas no MonetDB2018-04-03T12:09:06ZLucas Fernandes de OliveiraCriação de views materializadas no MonetDBMonetDB não tem suporte a views materializadas. Para corrigir essa falha a proposta é criar uma tabela e inserir os dados relativos.MonetDB não tem suporte a views materializadas. Para corrigir essa falha a proposta é criar uma tabela e inserir os dados relativos.Revisionhttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/94Otimizar algoritmo de junção de visões2019-01-10T11:07:07ZLucas Fernandes de OliveiraOtimizar algoritmo de junção de visõesO código atual de junção de visões primeiramente verifica quais são as visões mais similares e as junta 2 a duas. O problema que encontrar a similaridade de duas visões é de tempo quadrático. Entretanto não é necessário juntar as tabelas...O código atual de junção de visões primeiramente verifica quais são as visões mais similares e as junta 2 a duas. O problema que encontrar a similaridade de duas visões é de tempo quadrático. Entretanto não é necessário juntar as tabelas mais similares, ``todas'' podem ser juntadas.
Esse código já foi feito no branch ICDE2019 experiments.1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/92Revisar tests2019-01-11T10:35:34ZLucas Fernandes de OliveiraRevisar testsFazer uma analise mais precisa dos testes automáticos. Após a *issue*#88 ter sido aceita, deve averiguar o que não está coverto e se é factivel cobrir esses casos.Fazer uma analise mais precisa dos testes automáticos. Após a *issue*#88 ter sido aceita, deve averiguar o que não está coverto e se é factivel cobrir esses casos.1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/90Mudar a interface Query para uma Classe2019-01-10T11:07:07ZLucas Fernandes de OliveiraMudar a interface Query para uma ClasseHoje um elemento importante do BlenDB, a *query*, é uma interface e não uma classe. Essa escolha foi feita pois não existiu até o momento a necessidade da *query* possuir métodos. Entretanto, como efeito colateral a *query* não possui um...Hoje um elemento importante do BlenDB, a *query*, é uma interface e não uma classe. Essa escolha foi feita pois não existiu até o momento a necessidade da *query* possuir métodos. Entretanto, como efeito colateral a *query* não possui um construtor. Como essa interface possui parametros opicionais, em diversos locais é necessário verificar se esses parametros opicionais estão preenchidos, ou não, se prenche-los com valores **default**.
Esse preenchimento poderia ser feito no construtor da classe, evitando a validação em diversos pontos do código.
## Objetivo
* Mudar a interface *query* para uma classe
* Criar um método contrutor, para preencher os valores opcionais
* A interface *query* se transforma em *queryOpts* que são as opções para criar uma query.
* Verificar onde existe validação dos valores da query e remove-las1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/91Modificação do contrutor da Engine2019-01-10T11:07:08ZLucas Fernandes de OliveiraModificação do contrutor da EngineVerificar a viabilidade da substituição do contrutor da classe Engine.
O contrutor dessa calsse inicia uma estrutura vazia, que deve ser incrementada utilizando outras funcções como addView, addMetric, ..., etc.
Verificar se é possível...Verificar a viabilidade da substituição do contrutor da classe Engine.
O contrutor dessa calsse inicia uma estrutura vazia, que deve ser incrementada utilizando outras funcções como addView, addMetric, ..., etc.
Verificar se é possível que o contrutor recebe um objeto do tipo ParseConfig e realize a construção do objeto. As funções addAlgumaCoisa podem ser colocadas como privadas.
Verificar se é possível realizar essa alteração, e se for possível realizar.1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/89Opção de demonstração para o container docker2019-01-10T11:07:08ZLucas Fernandes de OliveiraOpção de demonstração para o container dockerAtualmente o container docker do Blendb permite a execução do mesmo para um banco de dados dado.
Adicionar uma opção de demonstração, onde ao invés de executar sobre o banco dado, um banco de demonstração, criado na tarefa #75 é utiliza...Atualmente o container docker do Blendb permite a execução do mesmo para um banco de dados dado.
Adicionar uma opção de demonstração, onde ao invés de executar sobre o banco dado, um banco de demonstração, criado na tarefa #75 é utilizado, permitindo que um usuáriio interessado teste, use e brinque com a ferramenta sem possuir dados necessariamente.1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/88Migrar testes para novo banco de dados de teste2019-01-10T11:07:08ZLucas Fernandes de OliveiraMigrar testes para novo banco de dados de testeAtualmente o banco de dados de teste não possui significado, atributos como **dim:1** **met:1** estão presentes mas não agregam nenhum significado. Transferir os testes para um banco de dados de teste onde os nomes dos atributos e as rel...Atualmente o banco de dados de teste não possui significado, atributos como **dim:1** **met:1** estão presentes mas não agregam nenhum significado. Transferir os testes para um banco de dados de teste onde os nomes dos atributos e as relações entre eles, e entre as tabelas faz mais sentido.
O banco de dados deve ser um cenário "real", onde o Blendb pode ser aplicado.
A principio os testes, com isso é a semântica de um teste, não precisa ser mudada, por exemplo o teste **Consulta com mais de uma métrica** ainda deve existir, mas ao invés de testar uma consulta com as métricas 1,2 e 3 pode-se testar com média, pico e total de tráfego de rede.
O principal objetivo é manter a cobertura, mesmo com o banco novo.
Acredita-se que a maioria dos testes será mantida, mas pode ocorrer de alguns testes serem considerados desnecessário e outros novos surgirem. Afinal diversos testes são afetados pela estrutura do banco de dados.1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/86Adicionar variavel de ambiente para ler arquivo de configuração2019-01-10T11:07:08ZLucas Fernandes de OliveiraAdicionar variavel de ambiente para ler arquivo de configuraçãoAtualmente o arquivo de configuração é fixo: Para execução é o arquivo **config.yaml** e para testes **test.yaml**.
Adicionar uma variável de ambiente **BLENDB_SCHEMA_FILE** que contém o caminho para o arquivo yaml. Utilizar essa variáv...Atualmente o arquivo de configuração é fixo: Para execução é o arquivo **config.yaml** e para testes **test.yaml**.
Adicionar uma variável de ambiente **BLENDB_SCHEMA_FILE** que contém o caminho para o arquivo yaml. Utilizar essa variável ao invés dos caminhos fixos.
Observar efeitos sobre caminhos relativos.1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/82Campo opcicional para Enumtype2018-08-07T13:50:42ZLucas Fernandes de OliveiraCampo opcicional para EnumtypeQuando uma dimensão ou campo de uma fonte possui tipo como tipo enumeravel, a exibir essas informações como string (quando são retornadas pelas rotas) o valor do **enumtype** sobrescreve o **dataType**. Seria mellhor que o datatype fosse...Quando uma dimensão ou campo de uma fonte possui tipo como tipo enumeravel, a exibir essas informações como string (quando são retornadas pelas rotas) o valor do **enumtype** sobrescreve o **dataType**. Seria mellhor que o datatype fosse marcado como **enum** e uma nova chave **enumtype** que seria opcional recebesse o valor do **enumtype**.
Essa mudança se deve a maior facilidade para geração de interfaces automáticas.
Além disso, se essa mesma lógica for aplicada ao arquivo de configuração a sua leitura deve ser mais simples.1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/80Centralizar parsers para enums2018-07-31T14:27:01ZLucas Fernandes de OliveiraCentralizar parsers para enumsAtulamente as funções que traduzem strings para Enums e vice-versa espalhadas em diversas classes, as que tem maior necessidade de utilizar essas funções, porém isso se torna incoveniente se mais de uma classe precisa do parser.
Criar u...Atulamente as funções que traduzem strings para Enums e vice-versa espalhadas em diversas classes, as que tem maior necessidade de utilizar essas funções, porém isso se torna incoveniente se mais de uma classe precisa do parser.
Criar um arquivo no diretório **utils** chamado **enumHandler** que deve contém métodos estáticos para manipulação dos enums1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/58Adicionar testes automatizados para o Adaptador de MonetDB2018-07-10T12:03:46ZLucas Fernandes de OliveiraAdicionar testes automatizados para o Adaptador de MonetDBA propósta é utilziar os mesmos testes tanto para o MonetDB quanto para o Postgres.
Essa issue está impedida pelo fato de não haver um *runner* adequaqdo para executar testes no postgres e no monet
Adicionar uma opções de adaptador tes...A propósta é utilziar os mesmos testes tanto para o MonetDB quanto para o Postgres.
Essa issue está impedida pelo fato de não haver um *runner* adequaqdo para executar testes no postgres e no monet
Adicionar uma opções de adaptador test (que deve ser usada apenas para testes) que executas os testes em todos os adaptadores.
Quando outra opções além dessa é usada deve-se pular os testes dos outros adaptadoresRevisionRafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/85Conexão em múltiplos bancos de dados simultâneamente2018-10-03T14:53:04ZLucas Fernandes de OliveiraConexão em múltiplos bancos de dados simultâneamente# Problema
Foi detectado que para a realização da tarefa #58, é necessário se conectar em diversos bancos de dados simultâneamente. Foi detectada que essa não seria uma atualização trivial de ser realizada e terá grandes impactos em dive...# Problema
Foi detectado que para a realização da tarefa #58, é necessário se conectar em diversos bancos de dados simultâneamente. Foi detectada que essa não seria uma atualização trivial de ser realizada e terá grandes impactos em diversas partes do código, por essa razão uma tarefa separada foi criada.
Por enquanto o objetivo da tarefa é permitir a conexão a vários bancos que **compartilham o mesmo esquema**. No futuro pretende-se utilizar esquemas diferentes para cada um dos bancos, entretanto essa alteração seria muito grande e será delegada a uma outra tarefa futura.
Atualmente, conectar-se em múltiplos bancos de dados possui dois benefícios imediatos.
* Realização de testes simultâneos em SGBDs diferentes (garantindo corretude em todos os SGBD's)
* Distribuição de carga entre bases de dados (Que podem ser de SGBD's diferentes)
Além disso a inserção pode ser disparada para todos os adaptadores, mantendo a consistência da base. Ainda não é necessário decidir para qual base uma determinada inserção é enviada.
# Alterações necessárias
* [x] Modificar as variáveis de ambiente para conexão com o banco.
* Uma nova variável deve ser criada: **BLENDB_N_DATABASES** que indica o número de bancos de dados simultâneos sendo utilizados. Ela deve ter como valor *default* 1
* As variáveis **BLENDB_DB_*** devem ser modificadas para **BLENDB_DBN_** onde **DBN** será substituido por **DB0** para o primeiro banco, **DB1** para o segundo e assim sucessivamente
* A variável **BLENDB_ADAPTER** deve ser trocada para **BLENDB_DBN_ADAPTER**, já que cada banco pode ter o seu próprio adaptador
* Uma nova váriavel deve ser criada **BLENDB_SCHEMA** que contém o caminho para o esquema do banco de dados (relativo a raiz do projeto ou absoluto)
* [x] Alterações na leitura da configuração
* No **ConfigParser** trocar a criação da conexão de um objeto **Connection** para uma lista de conexões, uma para cada base.
* Realizar a leitura do arquivo de esquema a partir da váriavel de ambiente **BLENDB_SCHEMA**
* [x] Alterações na inicialização (**main.ts**)
* Remover a leitura *hardcoded* do arquivo de definição de esquema (Atualmente config.yaml ou test.yaml).
* Modificação da *middleware* de adapatdores para receber uma lista e não apenas uma conexão.
* [x] Modificação das *midlewares* de adaptador
* Unificar as *middlewares* de cada adaptador em uma única middleware que devolve uma lista de adaptadores e atribui a uma váriavel req.adapters
* [ ] Alterações nos controladores da API de leitura/escrita
* Criação de uma politica de leitura, sugestão: **round robin**, ou seja, cada nova requisição é enviada para o banco que foi o último a atender uma requisição
* Criação de uma politica de escrita, realizar a escrita em todos os bancos
* Caso 2 bancos na realidade forem o mesmo banco, a inserção será duplicada (inserções com data devem resolver)Revisionhttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/81Corrigir erros de ortografia em mensagens de erro2018-07-09T11:40:24ZLucas Fernandes de OliveiraCorrigir erros de ortografia em mensagens de erroA seguinte mensagem de erro é detectada no arquivo ```src/api/collect/collect.spec.ts```
Could not construct query with the paramters given."
Corrigir para
**Could not construct query with the given parameters.**A seguinte mensagem de erro é detectada no arquivo ```src/api/collect/collect.spec.ts```
Could not construct query with the paramters given."
Corrigir para
**Could not construct query with the given parameters.**1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/44Mover metricas dimensionais para Engine2018-05-16T13:40:54ZLucas Fernandes de OliveiraMover metricas dimensionais para EngineAtualmente as métricas dimensionais são tratadas apenas pelo adapter. Esse efeito surge ao realizar certos Joins entre as views sobre certas condições.
Descobrir se esse problema já pode ser detectado na Engine, e resolvido nesse ponto....Atualmente as métricas dimensionais são tratadas apenas pelo adapter. Esse efeito surge ao realizar certos Joins entre as views sobre certas condições.
Descobrir se esse problema já pode ser detectado na Engine, e resolvido nesse ponto. Provavelmente se isso for possivel, a view deverá ter uma estrutura mais elaborada do que um vetor de childViews para passar ao adapter para gerar a consulta. Provavelmente terá que indicar exatamente quais joins devem ser feitos e quais agregações devem ser feitas.
Com essa alteração o adapter terá que ser refatorado (Novamente), mas provavelmente deverá ficar mais simples.1.0Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/43Melhorar testes do adapatdor (novamente :( )2018-04-03T12:02:38ZLucas Fernandes de OliveiraMelhorar testes do adapatdor (novamente :( )Os testes do adpatador, quando a consulta é um sucesso, verificar os valores retornado para garantir que o resultado da consulta está realmente certo, não apenas se todos os atributos pedidos na consulta foram retornados.
Poucos testes ...Os testes do adpatador, quando a consulta é um sucesso, verificar os valores retornado para garantir que o resultado da consulta está realmente certo, não apenas se todos os atributos pedidos na consulta foram retornados.
Poucos testes fazem essa verificação1.0Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/64Atualizar exemplo de configuração2018-03-19T11:49:27ZLucas Fernandes de OliveiraAtualizar exemplo de configuraçãoOs arquivos exemplo de configuração estão em um formato antigo, devem ser atualzados para serem compatíveis com as configurações atuais.
Os novos arquivos exemplo devem conter um exemplo de cada campo possível e este deve ser comentado,...Os arquivos exemplo de configuração estão em um formato antigo, devem ser atualzados para serem compatíveis com as configurações atuais.
Os novos arquivos exemplo devem conter um exemplo de cada campo possível e este deve ser comentado, exemplificando sua funçãohttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/73Gerar cobertura de código como artefato do pipeline2018-05-16T13:40:42ZLucas Fernandes de OliveiraGerar cobertura de código como artefato do pipelineAo executar um pipeline a bobertura de código deve ser devolvida como uma artefato, assim é possível verificar as linhas dos novos arquivos que adicionadosAo executar um pipeline a bobertura de código deve ser devolvida como uma artefato, assim é possível verificar as linhas dos novos arquivos que adicionados1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/67Validar dataType2018-05-15T13:02:06ZRafael DiasValidar dataTypeÈ necessario validar o dataType contido no arquivo de configuração ```config/config.yaml```.È necessario validar o dataType contido no arquivo de configuração ```config/config.yaml```.1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/77Definir local para os tipos2018-05-15T13:02:19ZRafael DiasDefinir local para os tiposQuais são e aonde estão definidos os tipos que serão usados como padrão no BlendbQuais são e aonde estão definidos os tipos que serão usados como padrão no Blendb1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/78Adicionar yarn e npm shrinkwrap2018-05-07T12:19:25ZLucas Fernandes de OliveiraAdicionar yarn e npm shrinkwrapO yarn promete ser uma evolução do npm. Não se sabe se o yarn subtituirá completamente o npm mas o principal motivo para realizar a mudança é o fato de o yarn utilizar por padrão o travamento preciso da versão dos pacotes.
Essa funciona...O yarn promete ser uma evolução do npm. Não se sabe se o yarn subtituirá completamente o npm mas o principal motivo para realizar a mudança é o fato de o yarn utilizar por padrão o travamento preciso da versão dos pacotes.
Essa funcionalidade está disponível com o npm utilizando o comando npm shrinkwrap.
Como o docker está sendo utilizado, a versão dos pacotes deve ser precisa.
Alterar configurações necessaŕias e arquivos Docker para utilização de versão precisa.1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/68Adicionar tipo de retorno em todos os métodos2018-04-05T14:38:37ZLucas Fernandes de OliveiraAdicionar tipo de retorno em todos os métodosAlgumas classes possuem métodos que não dizem explicitamente o tipo de retorno. Definir o tipo explicitamente.Algumas classes possuem métodos que não dizem explicitamente o tipo de retorno. Definir o tipo explicitamente.1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/72Remover arquivos legados2018-04-05T14:06:52ZLucas Fernandes de OliveiraRemover arquivos legadosAlguns arquivos, como ```src/core/server``` e ```src/core/transformer``` são arquivos de uma versão legada que não são utilizados atualmente. Esses arquivos "inuteis" devem ser removidos pois provavelmente se sua funcionalidade for requi...Alguns arquivos, como ```src/core/server``` e ```src/core/transformer``` são arquivos de uma versão legada que não são utilizados atualmente. Esses arquivos "inuteis" devem ser removidos pois provavelmente se sua funcionalidade for requisitada, provavelmente não será compatível com a versão atual (o que ocorreu com ```src/core/source```)1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/76Palavras compostas no arquivo de configuração YAML2018-04-05T13:34:52ZLucas Fernandes de OliveiraPalavras compostas no arquivo de configuração YAMLO parsing das propriedades do arquivo de configuração é *case sensitive* isso faz com que chaves como **enumType** e **dataType** sejam diferentes de **enumtype** e **datatype**.
Seria prudente manter o padrão, ou realizar um preprocess...O parsing das propriedades do arquivo de configuração é *case sensitive* isso faz com que chaves como **enumType** e **dataType** sejam diferentes de **enumtype** e **datatype**.
Seria prudente manter o padrão, ou realizar um preprocessamento para converter todas as propriedades para letras minúsculas ??
Uma diferentça dessa magnitude pode ser difícil de detectar em um processo de Debug. Como proceder ?
Quão diffcíl seria converter apenas as chaves para letras minúsculas ?
Seria prudente remover as palavars compostas e utilizar apenas palavars simples ?Revisionhttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/79Criar Views (materializadas) quando não existem2018-06-06T12:04:37ZLucas Fernandes de OliveiraCriar Views (materializadas) quando não existemAtualmente existe uma variável **BLENDB_ST_CREATE** que quando é verdadeira cria as tabelas de teste e quando é falsa apenas trunca.
Remover essa váriavel e em caso de teste criar as tabelas que não existem ao invés de falhar a execuçãoAtualmente existe uma variável **BLENDB_ST_CREATE** que quando é verdadeira cria as tabelas de teste e quando é falsa apenas trunca.
Remover essa váriavel e em caso de teste criar as tabelas que não existem ao invés de falhar a execução1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/84Utilização da ferramenta Typedoc2018-05-24T14:35:52ZLucas Fernandes de OliveiraUtilização da ferramenta Typedoc[Typedoc](https://github.com/TypeStrong/typedoc) é um gerador de documentação de código Typescript.
Atualmente o código é parcialmente documentado utilizando a Wiki do Gitlab. O principal problema dessa abordagem é que o processo não é ...[Typedoc](https://github.com/TypeStrong/typedoc) é um gerador de documentação de código Typescript.
Atualmente o código é parcialmente documentado utilizando a Wiki do Gitlab. O principal problema dessa abordagem é que o processo não é integrado e não é versionado. Utilizando essa ferramenta cada uma dos branchs poderia ser documentado separadamente e não é necessária a utilização de uma ferramenta externa, basta modificar o próprio código (através da inserção de comentários)1.0Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/95Adicionar script de criação do banco2018-11-20T11:21:17ZLucas Fernandes de OliveiraAdicionar script de criação do bancoCriar um script que é executado utilizando ```npm run init-db``` que cria todas as tabelas necessárias para o funcionamento do Blendb (utilizando o arquivo de configuração).
Caso as tabelas já existam, não devem ser alteradas. Caso este...Criar um script que é executado utilizando ```npm run init-db``` que cria todas as tabelas necessárias para o funcionamento do Blendb (utilizando o arquivo de configuração).
Caso as tabelas já existam, não devem ser alteradas. Caso estejam utilizando o *alias* como nome, deve-se verificar se o *id* confere. Caso não confira, deve-se retornar um erro.
Para evitar atualização parcial, essas operações devem ser executadas como uma única transação.
Esse código já está parcialmente escrito na seção de fixtures. Esse código deve ser realocado para o código dos adaptadores. O script a ser criado deve simplesmente chamar as funções de criação dos adaptadores.1.0https://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/96Arrumar documentação da classe adapter2019-02-11T10:50:59ZLucas Fernandes de OliveiraArrumar documentação da classe adapterNa classe adapter no método insertIntoSource, o atributo data não foi documentado.
Verificar se o erro se repete nas classes filhas.Na classe adapter no método insertIntoSource, o atributo data não foi documentado.
Verificar se o erro se repete nas classes filhas.1.0Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/97Atualizar licenças e Copyrights2019-11-04T12:31:18ZLucas Fernandes de OliveiraAtualizar licenças e CopyrightsVerificar os copyrights e as licenças do blend.
Em muitos arquivos é citado apenas blend ao invés de Blendb e acredito que a forma correta de manter os direitos autorais é
com o intervalo de tempo ao invés de apenas o ano em que foi cri...Verificar os copyrights e as licenças do blend.
Em muitos arquivos é citado apenas blend ao invés de Blendb e acredito que a forma correta de manter os direitos autorais é
com o intervalo de tempo ao invés de apenas o ano em que foi criado.
Além disso verificar a viabilidade de mudar a licença de GPL3 para AGPL3.1.0https://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/101Criar Classe para gerenciar mensagens de erro.2018-12-13T13:14:24ZLucas Fernandes de OliveiraCriar Classe para gerenciar mensagens de erro.Criar uma classe que gera as mensagens de erro.
Essa classe poderia ser chamada de ErrorHandler ou ErrorMsgHandler cujo objetivo é criar as mensagens de erro. Para cada mensagem de erro a classe deve ter um método para gerar uma mensage...Criar uma classe que gera as mensagens de erro.
Essa classe poderia ser chamada de ErrorHandler ou ErrorMsgHandler cujo objetivo é criar as mensagens de erro. Para cada mensagem de erro a classe deve ter um método para gerar uma mensagem específica. Caso a mensagem tenham parametros ela deve receber como argumento de função. A ideia da classe é padronizar as mensagens de erro e reduzir a quantidade de código repleta de strings gigantes.
Uma vez que a classe foi criada substituir as mensagens de erros por chamadas de funções dessa classe.https://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/105Verificar mensagens de erro2019-08-09T12:25:57ZLucas Fernandes de OliveiraVerificar mensagens de erroMuitas das mensagens de erro não são significativas e existem alguns casos no qual existe erro mas não é informada a causa.
Um exemplo é a consulta:
http://simmcdev:3000/v1/data?metrics=met:min:cadunico:familia:renda:media&dimensions=d...Muitas das mensagens de erro não são significativas e existem alguns casos no qual existe erro mas não é informada a causa.
Um exemplo é a consulta:
http://simmcdev:3000/v1/data?metrics=met:min:cadunico:familia:renda:media&dimensions=dim:cadunico:familia:data:alteracao&filters=dim:cadunico:familia:data:alteracao==2011-06-03
Nesse caso a conversão do filtro falha, mas por alguma razão o erro não é notificadoRafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/106Adicionar resposat de consulta em formato csv2019-07-01T18:20:52ZLucas Fernandes de OliveiraAdicionar resposat de consulta em formato csvPermitir que as respostas da api sejam respondidas através de arquivos csv.
A API passará a ter um novo parametro **format** que por padrão receberá o valor json mas também pode receber o valor csv para exportar os dados em formato csv.Permitir que as respostas da api sejam respondidas através de arquivos csv.
A API passará a ter um novo parametro **format** que por padrão receberá o valor json mas também pode receber o valor csv para exportar os dados em formato csv.Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/107Adicionar marcadores as métricas e dimensões2019-07-26T14:50:11ZLucas Fernandes de OliveiraAdicionar marcadores as métricas e dimensõesAdicionar a descrição das métricas e dimensões marcadores.
Será adicionado um campo tags que é opicional. Esse campo pode ser preenchido de duas formas. Diretamente nas mérticas e dimensões ou através das visões na qual elas estão
As v...Adicionar a descrição das métricas e dimensões marcadores.
Será adicionado um campo tags que é opicional. Esse campo pode ser preenchido de duas formas. Diretamente nas mérticas e dimensões ou através das visões na qual elas estão
As visões também podem receber tags. Todas as métricas e dimensões nessa visão receberão a tag indcada.
Também deverá existir uma rota de tags que retorna as tags existentes.
Essas tags podem ser adicionadas no arquivo de configuração.1.0Lucas Fernandes de OliveiraLucas Fernandes de Oliveirahttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/108Adionar Logs ao Blendb2019-09-12T14:42:00ZLucas Fernandes de OliveiraAdionar Logs ao BlendbO Blendb não gera nenhum arquivo de log o que dificulta encontrar problemas.
Criar uma ferramenta que gere arquivos de log.
Devem existir diversos níveis de log. Pode ser utilizado o pacote log do npm.
A principio os logs podem ser ge...O Blendb não gera nenhum arquivo de log o que dificulta encontrar problemas.
Criar uma ferramenta que gere arquivos de log.
Devem existir diversos níveis de log. Pode ser utilizado o pacote log do npm.
A principio os logs podem ser gerados apenas nos controladores, não é necessário gerar log nos componentes mais internos (uma vez que esses componentes devolvem os erros para o controlador).
A ferramenta de log deve ser incluida por uma middleware (assim como a engine e o adaptador)
A configuração da ferramenta de log deve ser feita pelo arquivo config.env através de variaveis de ambiente.
Também deve ser modificado o script de criação de um serviço do systemd para criar um arquivo /var/log/blendb.log
O valor padrão para criar o arquivo de log deve ser /var/log/blendb.log, seguido de ./logs/blendb.log por fim a saída de erro.Rafael DiasRafael Diashttps://gitlab.c3sl.ufpr.br/c3sl/blendb/-/issues/109Aumentar versão de node utilizada pelo Blendb2019-08-29T12:04:31ZLucas Fernandes de OliveiraAumentar versão de node utilizada pelo BlendbMigrar a versão do node para 10.
Recomendação.
Apagar todos os pacotes da lista do package.json e yarn.lock.
Instalar novamente os pacotes, agora com a versão atualizada.
também modificar o package.json para dizer que node 10+ deve ...Migrar a versão do node para 10.
Recomendação.
Apagar todos os pacotes da lista do package.json e yarn.lock.
Instalar novamente os pacotes, agora com a versão atualizada.
também modificar o package.json para dizer que node 10+ deve ser utilizadoRafael DiasRafael Dias