GithubHelp home page GithubHelp logo

basedosdados / website Goto Github PK

View Code? Open in Web Editor NEW
24.0 6.0 6.0 197.09 MB

🖥 Website oficial da BD

Home Page: http://basedosdados.org

Dockerfile 0.28% CSS 1.01% JavaScript 98.70%
ckan search website open-source open-data nextjs backend frontend

website's People

Contributors

aldemirlucas avatar brenodega28 avatar cirdes avatar d116626 avatar fernandascovino avatar gabriel-milan avatar guialvesp1 avatar hellcassius avatar joaocarabetta avatar laura-l-amaral avatar lucascr91 avatar mergify[bot] avatar mfagundes avatar nayaramrsc avatar polvoazul avatar rdahis avatar rod-pinheiro avatar vmussa avatar vncsna avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

website's Issues

Novos Endpoints

Preciso de um novo endpoint que:

Endpoint Busca

  1. Liste datasets e possibilite filtro por query (texto da busca), organização, tema (grupo), cobertura geográfica, cobertura temporal e tamanho de forma paginada (também deve poder ser ordenada por Relevância, Recente, Ultima Atualização).
  2. Liste todas as tags possíveis dado o resultado do ponto 1. (inclusive de datasets que estão em outras páginas da paginação)
  3. Liste todas as organizações possíveis dado o resultado do ponto 1. (inclusive de datasets que estão em outras páginas da paginação)

Ex de Requisição:

/api/v3/bd_package_search?q=Vacinas&group=saude,vacina,brasil&spatial_coverage=country&temporal_coverage=2020,2021&order_by=recent&page=1

Ex de Resposta:

{
    datasets: [...lista com os datasets paginados],
    tags:[...lista com TODAS as tags junto com o número de datasets com aquela tag, mesmo dos datasets que não aparecem nessa paginação],
    organizations:[...lista com TODAS as organizações, junto com o número de datasets da organização, mesmo dos datasets que não aparecem nessa paginação]
}

Endpoint Traduções

Endpoint com os nomes em português dos campos dos metadados.
Trazer dados do json schema, resposta pode ser por resource_type.

{
    "package":{
           "title": "Título",
     },
    "bdm_table":{
           "title": "Título"
    },
   "external_link":{
          "link": "Link",
    }
}
  • Endpoint Busca
  • Endpoint Traduções

[docs] corrigir links quebrados

Broken Links

basedosdados.org/dataset/a-shell-dataset-for-shell-features-extraction-and-recognition

basedosdados.org/dataset/a-spatial-database-of-health-facilities-managed-by-the-public-health-sector-in-sub-saharan-africa

basedosdados.org/dataset/amazonia-minada

basedosdados.org/dataset/anuario-brasileiro-de-seguranca-publica

basedosdados.org/dataset/arrecadacao-emissao-de-vistos-entre-2010-e-2019-por-posto

basedosdados.org/dataset/atlas-da-noticia

basedosdados.org/dataset/atlas-of-historical-county-boundaries

basedosdados.org/dataset/atlas-of-the-human-planet

basedosdados.org/dataset/authoritarian-ruling-elites-database-ared

basedosdados.org/dataset/autuacoes-ambientais-e-embargos

basedosdados.org/dataset/avaliacao-nacional-da-alfabetizacao

basedosdados.org/dataset/beneficios-do-instituto-nacional-de-seguro-social-inss

basedosdados.org/dataset/bolsa-familia

basedosdados.org/dataset/br-ana-atlas-esgotos

basedosdados.org/dataset/br-anvisa-medicamentos-industrializados

basedosdados.org/dataset/br-bd-diretorios-brasil

basedosdados.org/dataset/br-imprensa-nacional-dou

basedosdados.org/dataset/br-inep-indicadores-educacionais/resource/28ff11e9-b645-491c-9a6f-8a827f26903f

basedosdados.org/dataset/br-mc-auxilio-emergencial

basedosdados.org/dataset/br-rj-rio-de-janeiro-ipp-ips

basedosdados.org/dataset/census-of-fatal-occupational-injuries-cfoi

basedosdados.org/dataset/census-transportation-planning-products-ctpp

basedosdados.org/dataset/classificacao-de-genero-em-nomes-brasileiros

basedosdados.org/dataset/climate-divisional-database-nclimdiv

basedosdados.org/dataset/contratos-federais

basedosdados.org/dataset/convenios

basedosdados.org/dataset/crowd-sourced-covid-19-dataset-tracking-involuntary-government-restrictions-tigr

basedosdados.org/dataset/culture-under-threat-map

basedosdados.org/dataset/dados-estatisticos-da-anac

basedosdados.org/dataset/despesas-publicas

basedosdados.org/dataset/devedores-da-uniao

basedosdados.org/dataset/documento-de-origem-florestal-dof

basedosdados.org/dataset/documento-de-origem-florestal-dof/resource/8c73f76b-c189-4500-b577-148d1d179724

basedosdados.org/dataset/elas-no-congresso

basedosdados.org/dataset/estatisticas-de-comercio-exterior-do-agronegocio-brasileiro-agrostat

basedosdados.org/dataset/european-union-consolidated-financial-sanctions-list

basedosdados.org/dataset/favicons

basedosdados.org/dataset/global-carbon-budget

basedosdados.org/dataset/gridded-5km-ghcn-daily-temperature-and-precipitation-dataset-nclimgrid

  • Failed: HTTP Status 404 at Ir para recurso

basedosdados.org/dataset/immunization-vaccines-and-biologicals

basedosdados.org/dataset/letourdataset

  • Failed: HTTP Status 404 at Baixar

basedosdados.org/dataset/levantamento-nacional-de-informacoes-penitenciarias-infopen

basedosdados.org/dataset/lista-de-cartorios

basedosdados.org/dataset/malha-municipal

  • Failed: HTTP Status 404 at Ir para recurso

basedosdados.org/dataset/mapa-das-organizacoes-da-sociedade-civil

basedosdados.org/dataset/member-states-of-the-united-nations

basedosdados.org/dataset/mprjmais

basedosdados.org/dataset/mundo-kaggle-olimpiadas

basedosdados.org/dataset/mundo-onu-adh

basedosdados.org/dataset/mundo-transfermarkt-competicoes

basedosdados.org/dataset/native-land-ca

basedosdados.org/dataset/notificacao-de-casos-de-doenca-pelo-coronavirus-2019-covid-19

basedosdados.org/dataset/oxford-covid-19-government-response-tracker-oxcgrt

basedosdados.org/dataset/portal-de-imigracao-laboral

basedosdados.org/dataset/posse-e-porte-de-arma-de-fogo

basedosdados.org/dataset/precos-medicamentos-consumidor

basedosdados.org/dataset/programa-de-fiscalizacao-em-entes-federativos

basedosdados.org/dataset/sistema-de-informacao-de-agravos-de-notificacao-sinan

basedosdados.org/dataset/terraclass

basedosdados.org/dataset/the-planetary-exploration-budget-dataset

basedosdados.org/dataset/united-nations-general-assembly-voting-data

[infra] corrigir links quebrados

Broken Links

basedosdados.org/dataset/a-shell-dataset-for-shell-features-extraction-and-recognition

basedosdados.org/dataset/atlas-of-the-human-planet

basedosdados.org/dataset/authoritarian-ruling-elites-database-ared

basedosdados.org/dataset/avaliacao-nacional-da-alfabetizacao

basedosdados.org/dataset/beneficios-do-instituto-nacional-de-seguro-social-inss

basedosdados.org/dataset/bolsa-familia

basedosdados.org/dataset/br-ana-atlas-esgotos

basedosdados.org/dataset/br-anvisa-medicamentos-industrializados

basedosdados.org/dataset/br-bd-diretorios-brasil

basedosdados.org/dataset/br-imprensa-nacional-dou

basedosdados.org/dataset/br-mc-auxilio-emergencial

basedosdados.org/dataset/br-mobilidados-indicadores

basedosdados.org/dataset/br-rj-rio-de-janeiro-ipp-ips

basedosdados.org/dataset/censo-anual-da-igreja-catolica

basedosdados.org/dataset/centennial-earthquake-catalog

basedosdados.org/dataset/classificacao-de-genero-em-nomes-brasileiros

basedosdados.org/dataset/climate-divisional-database-nclimdiv

basedosdados.org/dataset/crime-in-the-u-s

basedosdados.org/dataset/culture-under-threat-map

basedosdados.org/dataset/despesas-pela-cota-para-exercicio-da-atividade-parlamentar

basedosdados.org/dataset/devedores-da-uniao

basedosdados.org/dataset/elas-no-congresso

basedosdados.org/dataset/european-union-consolidated-financial-sanctions-list

basedosdados.org/dataset/gestao-de-pessoas-executivo-federal-cargo-de-direcao-e-assessoramento-superiores-das

basedosdados.org/dataset/global-atlas-for-renewable-energy

basedosdados.org/dataset/global-attitudes-on-abortion

basedosdados.org/dataset/gridded-5km-ghcn-daily-temperature-and-precipitation-dataset-nclimgrid

  • Failed: HTTP Status 404 at Ir para recurso

basedosdados.org/dataset/hate-crime-in-the-u-s

basedosdados.org/dataset/letourdataset

  • Failed: HTTP Status 404 at Baixar

basedosdados.org/dataset/levantamento-nacional-de-informacoes-penitenciarias-infopen

basedosdados.org/dataset/malha-municipal

  • Failed: HTTP Status 404 at Ir para recurso

basedosdados.org/dataset/mapa-das-organizacoes-da-sociedade-civil

basedosdados.org/dataset/member-states-of-the-united-nations

basedosdados.org/dataset/mundo-kaggle-olimpiadas

basedosdados.org/dataset/mundo-onu-adh

basedosdados.org/dataset/mundo-transfermarkt-competicoes

basedosdados.org/dataset/native-land-ca

basedosdados.org/dataset/notificacao-de-casos-de-doenca-pelo-coronavirus-2019-covid-19

basedosdados.org/dataset/perfil-das-unidades-do-instituto-nacional-de-seguro-social-inss

basedosdados.org/dataset/portal-de-imigracao-laboral

basedosdados.org/dataset/precos-medicamentos-consumidor

basedosdados.org/dataset/pregnancies-births-and-abortions-in-the-united-states-national-and-state-trends-by-age

basedosdados.org/dataset/sistema-de-informacao-de-agravos-de-notificacao-sinan

basedosdados.org/dataset/terraclass

basedosdados.org/dataset/the-geographic-diversity-project

basedosdados.org/dataset/the-xinjiang-data-project

basedosdados.org/dataset/u-s-law-enforcement-officers-killed-and-assaulted-leoka

basedosdados.org/dataset/united-nations-general-assembly-voting-data

basedosdados.org/group/educacao

Labels de available_options

Agora não está aparecendo em lugar nenhum os labels para chaves de available_options. Qual é a melhor solução pra isso, já vislumbrando suporte multi-língua no futuro?

Ideias:

  • Enums aceitarem dicionários, ao invés de chaves.

[docs] corrigir links quebrados

Broken Links

basedosdados.org/dataset/a-shell-dataset-for-shell-features-extraction-and-recognition

basedosdados.org/dataset/atlas-of-the-human-planet

basedosdados.org/dataset/authoritarian-ruling-elites-database-ared

basedosdados.org/dataset/avaliacao-nacional-da-alfabetizacao

basedosdados.org/dataset/beneficios-do-instituto-nacional-de-seguro-social-inss

basedosdados.org/dataset/bolsa-familia

basedosdados.org/dataset/br-ana-atlas-esgotos

basedosdados.org/dataset/br-anvisa-medicamentos-industrializados

basedosdados.org/dataset/br-bd-diretorios-brasil

basedosdados.org/dataset/br-imprensa-nacional-dou

basedosdados.org/dataset/br-me-caged

basedosdados.org/dataset/br-mobilidados-indicadores

basedosdados.org/dataset/br-rj-rio-de-janeiro-ipp-ips

basedosdados.org/dataset/centennial-earthquake-catalog

basedosdados.org/dataset/classificacao-de-genero-em-nomes-brasileiros

basedosdados.org/dataset/climate-divisional-database-nclimdiv

basedosdados.org/dataset/crime-in-the-u-s

basedosdados.org/dataset/culture-under-threat-map

basedosdados.org/dataset/despesas-pela-cota-para-exercicio-da-atividade-parlamentar

basedosdados.org/dataset/devedores-da-uniao

basedosdados.org/dataset/elas-no-congresso

basedosdados.org/dataset/european-union-consolidated-financial-sanctions-list

basedosdados.org/dataset/global-atlas-for-renewable-energy

basedosdados.org/dataset/global-attitudes-on-abortion

basedosdados.org/dataset/gridded-5km-ghcn-daily-temperature-and-precipitation-dataset-nclimgrid

  • Failed: HTTP Status 404 at Ir para recurso

basedosdados.org/dataset/hate-crime-in-the-u-s

basedosdados.org/dataset/letourdataset

  • Failed: HTTP Status 404 at Baixar

basedosdados.org/dataset/levantamento-nacional-de-informacoes-penitenciarias-infopen

basedosdados.org/dataset/malha-municipal

  • Failed: HTTP Status 404 at Ir para recurso

basedosdados.org/dataset/mapa-das-organizacoes-da-sociedade-civil

basedosdados.org/dataset/meteoritical-bulletin-database

basedosdados.org/dataset/mundo-kaggle-olimpiadas

basedosdados.org/dataset/mundo-onu-adh

basedosdados.org/dataset/mundo-transfermarkt-competicoes

basedosdados.org/dataset/native-land-ca

basedosdados.org/dataset/notificacao-de-casos-de-doenca-pelo-coronavirus-2019-covid-19

basedosdados.org/dataset/occupied-palestinian-territory

basedosdados.org/dataset/perfil-das-unidades-do-instituto-nacional-de-seguro-social-inss

basedosdados.org/dataset/portal-de-imigracao-laboral

basedosdados.org/dataset/precos-medicamentos-consumidor

basedosdados.org/dataset/pregnancies-births-and-abortions-in-the-united-states-national-and-state-trends-by-age

basedosdados.org/dataset/sistema-de-informacao-de-agravos-de-notificacao-sinan

basedosdados.org/dataset/terraclass

basedosdados.org/dataset/the-geographic-diversity-project

basedosdados.org/dataset/the-xinjiang-data-project

basedosdados.org/dataset/u-s-law-enforcement-officers-killed-and-assaulted-leoka

basedosdados.org/dataset/united-nations-general-assembly-voting-data

basedosdados.org/group/educacao

[infra] corrigir links quebrados

Broken Links

basedosdados.org/dataset/a-shell-dataset-for-shell-features-extraction-and-recognition

basedosdados.org/dataset/a-spatial-database-of-health-facilities-managed-by-the-public-health-sector-in-sub-saharan-africa

basedosdados.org/dataset/atlas-of-the-human-planet

basedosdados.org/dataset/authoritarian-ruling-elites-database-ared

basedosdados.org/dataset/avaliacao-nacional-da-alfabetizacao

basedosdados.org/dataset/beneficios-do-instituto-nacional-de-seguro-social-inss

basedosdados.org/dataset/bolsa-familia

basedosdados.org/dataset/br-ana-atlas-esgotos

basedosdados.org/dataset/br-anvisa-medicamentos-industrializados

basedosdados.org/dataset/br-imprensa-nacional-dou

basedosdados.org/dataset/br-mc-auxilio-emergencial

basedosdados.org/dataset/br-rj-rio-de-janeiro-ipp-ips

basedosdados.org/dataset/centennial-earthquake-catalog

basedosdados.org/dataset/classificacao-de-genero-em-nomes-brasileiros

basedosdados.org/dataset/climate-divisional-database-nclimdiv

basedosdados.org/dataset/crime-in-the-u-s

basedosdados.org/dataset/culture-under-threat-map

basedosdados.org/dataset/dados-estatisticos-da-anac

basedosdados.org/dataset/despesas-pela-cota-para-exercicio-da-atividade-parlamentar

basedosdados.org/dataset/devedores-da-uniao

basedosdados.org/dataset/elas-no-congresso

basedosdados.org/dataset/european-union-consolidated-financial-sanctions-list

basedosdados.org/dataset/gestao-de-pessoas-executivo-federal-cargo-de-direcao-e-assessoramento-superiores-das

basedosdados.org/dataset/global-atlas-for-renewable-energy

basedosdados.org/dataset/global-attitudes-on-abortion

basedosdados.org/dataset/gridded-5km-ghcn-daily-temperature-and-precipitation-dataset-nclimgrid

  • Failed: HTTP Status 404 at Ir para recurso

basedosdados.org/dataset/hate-crime-in-the-u-s

basedosdados.org/dataset/letourdataset

  • Failed: HTTP Status 404 at Baixar

basedosdados.org/dataset/levantamento-nacional-de-informacoes-penitenciarias-infopen

basedosdados.org/dataset/malha-municipal

  • Failed: HTTP Status 404 at Ir para recurso

basedosdados.org/dataset/mapa-das-organizacoes-da-sociedade-civil

basedosdados.org/dataset/member-states-of-the-united-nations

basedosdados.org/dataset/mprjmais

basedosdados.org/dataset/mundo-kaggle-olimpiadas

basedosdados.org/dataset/mundo-onu-adh

basedosdados.org/dataset/mundo-transfermarkt-competicoes

basedosdados.org/dataset/native-land-ca

basedosdados.org/dataset/notificacao-de-casos-de-doenca-pelo-coronavirus-2019-covid-19

basedosdados.org/dataset/perfil-das-unidades-do-instituto-nacional-de-seguro-social-inss

basedosdados.org/dataset/portal-de-imigracao-laboral

basedosdados.org/dataset/precos-medicamentos-consumidor

basedosdados.org/dataset/pregnancies-births-and-abortions-in-the-united-states-national-and-state-trends-by-age

basedosdados.org/dataset/sistema-de-informacao-de-agravos-de-notificacao-sinan

basedosdados.org/dataset/soccer-match-event-dataset

basedosdados.org/dataset/terraclass

basedosdados.org/dataset/the-geographic-diversity-project

basedosdados.org/dataset/the-xinjiang-data-project

basedosdados.org/dataset/u-s-law-enforcement-officers-killed-and-assaulted-leoka

basedosdados.org/dataset/united-nations-general-assembly-voting-data

basedosdados.org/organization/instituto-brasileiro-de-geografia-e-estatistica

Nova página: Casos de uso da BD

Tabela com organizações e usos mapeados: https://docs.google.com/spreadsheets/d/1myjlqEmyv5aEe20PO_lLJxr4uU_XNHYwSM0CoMIxoRg/edit#gid=0

  • Mapear projetos que usam a BD
  • Depoimentos e informações sobre organizações que estão usando a BD e como - @rdahis @fernandascovino
  • Adicionar na home uma seção de Trusted by que redireciona para a página de Casos de uso
  • Criar formulário para informar como você/sua organização usou a BD - colocar check para topar que a gente divulgue o seu trabalho nas nossas redes @nayaramrsc

Adicionar campo `metadata_modified` com subcampo `yaml_order` aos endpoints `bd_bdm_columns_schema` e `bd_dataset_schema`

Descrição

Para a construção da feature de criação dos metadados via CLI e API em Python, é preciso comparar os arquivos locais do usuário com os dados do CKAN para saber se o usuário está editando um arquivo de metadados atualizado. No entanto, os endpoints do schema dos metadados atuais do website não retornam o campo metadata_modified, inviabilizando a operação.

Solução

Para resolver isso, é preciso que os enpoints bd_dataset_schema e bd_bdm_columns_schema retornem o campo metadata_modified com um subcampo yaml_order no campo properties, para que ele seja incorporado na criação do YAML local e, assim, possa acontecer a comparação com os dados do CKAN via package_show.

Corrigir circular imports das bibliotecas

E depois disso alterar a parte do isort da action de continuous integration de

python -m isort --check-only --profile black --skip __init__.py --skip vendor .

para

python -m isort --check-only --profile black --skip vendor .

[website] metadados a serem exibidos no website

Proposta de campos para serem exibidos e a ordem na caixa de metadados de cada objeto. O que eu não mostraria dos campos do backend eu simplesmente excluí da lista.


dataset

  • id
  • dataset_id
  • groups
  • tags
  • spatial_coverage
  • temporal_coverage
  • update_frequency
  • entity
  • time_unit
  • ckan_url
  • github_url

bdm_table

  • id
  • dataset_id
  • table_id
  • spatial_coverage
  • temporal_coverage
  • update_frequency
  • entity
  • time_unit
  • identifying_columns
  • last_updated
  • version
  • published_by
  • data_cleaned_by
  • data_cleaning_description
  • raw_files_url
  • auxiliary_files_url
  • architecture_url
  • covered_by_dictionary
  • partitions
  • bdm_file_size
  • columns

bdm_dictionary

  • id
  • dataset_id
  • table_id
  • identifying_columns
  • last_updated
  • published_by
  • partitions
  • bdm_file_size
  • columns

bdm_column

  • name
  • bigquery_type
  • description
  • temporal_coverage
  • covered_by_dictionary
  • directory_column
  • measurement_unit

external_link

  • id
  • title
  • url
  • description
  • language
  • has_structured_data
  • has_api
  • is_free
  • requires_registration
  • availability
  • country_ip_address_required
  • license
  • spatial_coverage
  • temporal_coverage
  • update_frequency
  • entity
  • time_unit

information_request

  • id
  • origin
  • number
  • url
  • department
  • description
  • opening_date
  • requested_by
  • spatial_coverage
  • temporal_coverage
  • update_frequency
  • entity
  • time_unit
  • status
  • data_url
  • observations

[infra] JSON Schema inconsistente nas respostas dos endpoints de metadados da API do website/CKAN

Descrição
O JSON Schema produzido como resposta nos endpoints bd_dataset_schema e bd_bdm_table_schema do website/CKAN está ordenado de forma inconsistente, impossibilitando uma geração correta dos YAMLs por parte da API CLI/Python. Esse erro é capturado com as seguintes mensagens:

basedosdados.exceptions.BaseDosDadosException: "Inconsistent YAML ordering: download_type is pointed to by metadata_modified but doesn't have itself a `yaml_order` field in the JSON Schema."
basedosdados.exceptions.BaseDosDadosException: "Inconsistent YAML ordering: github_url is pointed to by partitions but doesn't have itself a `yaml_order` field in the JSON Schema."

O campo metadata_modified dos metadados de datasets aponta como id_after o download_type, mas o download_type não tem um campo yaml_order, o que o deixa de fora da lista de campos a serem inseridos no YAML, o que quebra a linked list de geração dos YAMLs. O mesmo acontece com o gihub_url e partitions no endpoint de metadados de tabelas. Seria preciso investigar se há outros campos sem yaml_order, já que atualmente a Exception só captura os primeiros erros que quebram a corrente.

Reproduzir
Passos para reproduzir o comportamento:

  1. Vá para o endpoint bd_dataset_schema ou bd_bdm_table_schema
  2. Salve o JSON
  3. Rode a função CLI de metadados para gerar os YAMLs a partir do JSON: basedosdados metadata create dataset1
  4. Veja o erro descrito acima

Comportamento esperado
O YAML é gerado a partir de um JSON Schema com yaml_order consistente.

Ambiente

  • SO: Ubuntu 20.04 / cliente basedosdados versão da branch add_validate_module_2 / endpoints do staging

Adicionar instruções para redirecionamento ao BQ

Puxar infos da documentação na página de redirecionamento para o BigQuery

  • Título sugestivo: "Como acessar os dados?"
  • Adicionar prints do BQ para guiar usuarios
  • Colocar snippet de como usar no Python/R
  • Indicar sobre tabelas pesadas - @polvoazul temos algum calculo de tempo para baixar a tabela no 1-click? Poderíamos automatizar aqui quando demorar +30s aparecer alguma msg ou algo do tipo? Parece ser o caso do DOU, que no BQ demora ~2min para executar

Erro de digitação nas páginas das tabelas dos datasets BD+

Olá, todo mundo. Não sei se é o local ideal para reportar esse erro e não conheço a estrutura do CKAN para fazer a correção.

Descrição do erro

Em todas as páginas que eu visitei de tabelas de datatasets BD+, a primeira frase, que apresenta a tabela, tem um erro de digitação:

Nós tratamentos e disponibilizamos esta tabela no nosso datalake público (...)

Solução

Simplesmente alterar para:

Nós tratamos (...)

Por favor desconsiderem se eu estiver postando no local errado e obrigado pela atenção.

Tipo de download não está atualizando

Quando mudo o tipo de download da base https://basedosdados.org/dataset/br-denatran-frota de "link externo" para "bdm", ele permite atualizar mas não atualiza de fato no banco (nem aparece a logo BD+ na base).

[website] Documentação da API

  • Adicionar link da documentação da API na documentação central da Base dos Dados
  • Mudar nome da url de openapi para docs-api
  • Trocar a ordem dos servidores para basedosdados --> develop --> localhost

Novos endpoints para a Home

  1. Endpoint de listagem das n bases mais populares (n passado como parâmetro na url ?page_size=n).
  2. Endpoint de listagem das n bases mais recentes (n passado como parâmetro na url ?page_size=n).
  3. Endpoint de inscrição de um email na newsletter.

Informações necessárias da base de dados para os pontos 1 e 2:

  • Categorias
  • Título
  • Tags (acho que é categoria novamente, confirmar no figma)
  • Tamanho (se existir)
  • Quantidade de tabelas (se existir)
  • Quantidade de links externos (se existir)
  • Último usuário que atualizou a base
  • Data de última atualização da base
  • Link para a base de dados (provavelmente é um slug)

Metadados v2.1

  • temporal_coverage ser uma lista de intervalos
  • spatial_coverage ser uma árvore com metadados tipo id_municipio
  • Criar modelos para organização, grupo, etiqueta, usuário.
  • Metadado de coluna ser "sensível" ou não (para LGPD)
  • Fechar #53.

Corrigir issues gerais

  • Dar uma limpa nas extensões, fixar versões e aplicar vendoring;
  • Organizar configurações de prod/dev, adicionando o possível no docker-compose;
  • Adicionar ckan e extensões como subtree do repositório;
  • Organizar testes;
  • Remover histórico do git (postgres-prod-dump.custom, initdbs);
  • Checar as views do site (parece quebrado).

Via comentários do Fred em arquivos diversos

Adicionar logo atual no CKAN.

O arquivo já está em website/ckanext-basedosdados/ckanext/basedosdados/public/images/bd_logo_horizontal.png.

Falta fazer aparecer na home.

[develop] Alguns entrypoints da API retornam erros mesmo com `data_dict` idêntico ao JSON do `package_show`

Descrição do bug

Ao enviar um data_dict idêntico ao JSON retornado pelo package_show (id=br-ibge-pib) para o package_validate, recebo o seguinte erro no cliente do Python:

CKANAPIError: ['http://0.0.0.0:5000/api/action/package_validate', 500, '{"help": "http://3.87.150.32/api/3/action/help_show?name=package_validate", "error": {"__type": "Internal Server Error", "message": "Internal Server Error"}, "success": false}']

E no log servidor web do website eu recebo o seguinte erro:

2021-09-06 22:03:56,451 ERROR [ckan.views.api] dict() got multiple values for keyword argument 'dataset_id'
Traceback (most recent call last):
  File "/venv/lib/python3.9/site-packages/ckan/config/middleware/../../views/api.py", line 291, in action
    result = function(context, request_data)
             │        │        └ {'name': 'br-ibge-pib_', 'title': 'Produto Interno Bruto do Brasil', 'type': 'dataset', 'notes': 'Um sistema de indicadores muni...
             │        └ {'model': <module 'ckan.model' from '/venv/lib/python3.9/site-packages/ckan/model/__init__.py'>, 'session': <sqlalchemy.orm.scop...
             └ <function get_action.<locals>.make_wrapped.<locals>.wrapped at 0x7f77d48e7c10>
  File "/venv/lib/python3.9/site-packages/ckan/logic/__init__.py", line 473, in wrapped
    result = _action(context, data_dict, **kw)
             │       │        │            └ {}
             │       │        └ {'name': 'br-ibge-pib_', 'title': 'Produto Interno Bruto do Brasil', 'type': 'dataset', 'notes': 'Um sistema de indicadores muni...
             │       └ {'model': <module 'ckan.model' from '/venv/lib/python3.9/site-packages/ckan/model/__init__.py'>, 'session': <sqlalchemy.orm.scop...
             └ <function package_validate at 0x7f77d4312d30>
  File "/app/ckanext-basedosdados/ckanext/basedosdados/actions/__init__.py", line 36, in package_validate
    data, errors = lib_plugins.plugin_validate(
  File "/venv/lib/python3.9/site-packages/ckan/lib/plugins.py", line 302, in plugin_validate
    result = plugin.validate(context, data_dict, schema, action)
             │               │        │          │       └ 'package_create'
             │               │        │          └ {'__before': [<function duplicate_extras_key at 0x7f77d79d7700>, <function ignore at 0x7f77d48c7dc0>], 'id': [<function empty_if...
             │               │        └ {'name': 'br-ibge-pib_', 'title': 'Produto Interno Bruto do Brasil', 'type': 'dataset', 'notes': 'Um sistema de indicadores muni...
             │               └ {'model': <module 'ckan.model' from '/venv/lib/python3.9/site-packages/ckan/model/__init__.py'>, 'session': <sqlalchemy.orm.scop...
             └ <Plugin BasedosdadosPlugin 'basedosdados'>
  File "/app/ckanext-basedosdados/ckanext/basedosdados/plugin.py", line 28, in validate
    out, errors = {
  File "/app/ckanext-basedosdados/ckanext/basedosdados/plugin.py", line 58, in _validate_create
    out = self._validate_pydantic(data_dict, action)
          │                       │          └ 'package_create'
          │                       └ {'name': 'br-ibge-pib_', 'title': 'Produto Interno Bruto do Brasil', 'type': 'dataset', 'notes': 'Um sistema de indicadores muni...
          └ <Plugin BasedosdadosPlugin 'basedosdados'>
  File "/app/ckanext-basedosdados/ckanext/basedosdados/plugin.py", line 106, in _validate_pydantic
    data_model = dict(**data_dict, **dataset_args)
                        │            └ {'dataset_id': 'br_ibge_pib'}
                        └ {'name': 'br-ibge-pib_', 'title': 'Produto Interno Bruto do Brasil', 'type': 'dataset', 'notes': 'Um sistema de indicadores muni...
TypeError: dict() got multiple values for keyword argument 'dataset_id'

Os mesmos errors acontecem no cliente Python e no servidor web ao tentar publicar modificações dos metadados via package_patch.

O data_dict passo para API do CKAN é o seguinte:

{'id': '9ffa2eb2-3119-45f1-9353-7c279f1613e9',
 'name': 'br-ibge-pib',
 'title': 'Produto Interno Bruto do Brasil',
 'type': 'dataset',
 'notes': 'Um sistema de indicadores municipais com informações econômicas e sociais é importante instrumento para o planejamento de políticas públicas. Com a promulgação da Constituição Federal de 1988, que deu mais responsabilidade e autonomia aos municípios, ampliaram-se as demandas por informações econômicas padronizadas e comparáveis em nível municipal, tanto por parte de agentes públicos e privados, quanto por estudiosos da economia, e pela sociedade em geral. os resultados do PIB dos Municípios permitem identificar as áreas de geração de renda, produzindo informações que captam as especifidades do País.Dados sobre Produto Interno Bruto do IBGE.\nDados sobre Produto Interno Bruto do IBGE.\n',
 'author': None,
 'author_email': None,
 'maintainer': None,
 'maintainer_email': None,
 'state': 'active',
 'license_id': '',
 'url': 'https://sidra.ibge.gov.br/pesquisa/pib-munic',
 'version': None,
 'metadata_created': '2019-09-17T17:05:24.772484',
 'metadata_modified': '2021-08-17T04:01:25.334011',
 'creator_user_id': '27eaffe3-f79b-469f-8f02-4716146bdfcc',
 'private': False,
 'license_title': '',
 'num_resources': 3,
 'resources': [{'id': '2fa7cf39-5a8c-4e9f-87d1-297f85c98371',
   'name': 'Baixar (Link Externo)',
   'description': '',
   'position': 0,
   'url': 'https://sidra.ibge.gov.br/pesquisa/pib-munic/tabelas',
   'cache_last_updated': None,
   'cache_url': None,
   'created': '2019-09-17T17:05:51.164381',
   'datastore_active': False,
   'format': '',
   'hash': '',
   'last_modified': None,
   'metadata_modified': '2021-08-11T01:23:07.893966',
   'mimetype': None,
   'mimetype_inner': None,
   'package_id': '9ffa2eb2-3119-45f1-9353-7c279f1613e9',
   'size': None,
   'state': 'active',
   'url_type': None,
   'resource_type': 'external_link',
   'language': ['portuguese'],
   'has_structured_data': None,
   'has_api': None,
   'is_free': 'yes',
   'requires_registration': 'no',
   'country_ip_address_required': None,
   'license': 'mit',
   'temporal_coverage': [2002,
    2003,
    2004,
    2005,
    2006,
    2007,
    2008,
    2009,
    2010,
    2011,
    2012,
    2013,
    2014,
    2015,
    2016,
    2017],
   'update_frequency': 'one_year',
   'formato': ''},
  {'id': '29f1c4e5-5932-4a6b-8b1f-f8b0bd91a200',
   'name': 'municipio',
   'description': 'Produto Interno Bruto (PIB) municipal a preços correntes.\n',
   'position': 1,
   'url': '',
   'cache_last_updated': None,
   'cache_url': None,
   'created': '2020-10-13T18:32:26.189478',
   'datastore_active': False,
   'format': '',
   'hash': '',
   'last_modified': None,
   'metadata_modified': '2021-08-17T04:01:25.346852',
   'mimetype': None,
   'mimetype_inner': None,
   'package_id': '9ffa2eb2-3119-45f1-9353-7c279f1613e9',
   'size': None,
   'state': 'active',
   'url_type': '',
   'resource_type': 'bdm_table',
   'dataset_id': 'br_ibge_pib',
   'table_id': 'municipio',
   'spatial_coverage': 'bra',
   'temporal_coverage': [2002,
    2003,
    2004,
    2005,
    2006,
    2007,
    2008,
    2009,
    2010,
    2011,
    2012,
    2013,
    2014,
    2015,
    2016,
    2017,
    2018],
   'update_frequency': 'one_year',
   'entity': ['municipality'],
   'identifying_columns': ['id_municipio', 'ano'],
   'version': 'v1.0',
   'published_by': {'name': 'Ricardo Dahis',
    'email': '[email protected]',
    'github_user': None,
    'website': 'www.ricardodahis.com',
    'ckan_user': None},
   'data_cleaned_by': {'name': 'Ricardo Dahis',
    'email': '[email protected]',
    'github_user': None,
    'ckan_user': None,
    'website': None,
    'code_url': 'https://github.com/basedosdados/mais/tree/master/bases/br_ibge_pib/code'},
   'data_cleaning_description': 'Mudamos a unidade de medida para R$1.\n',
   'auxiliary_files_url': '',
   'source_bucket_name': 'basedosdados-dev',
   'project_id_prod': 'basedosdados-dev',
   'project_id_staging': 'basedosdados-dev',
   'partitions': '',
   'bdm_file_size': None,
   'columns': [{'name': 'id_municipio',
     'description': 'ID Município - IBGE 7 Dígitos',
     'is_in_staging': True,
     'is_partition': False},
    {'name': 'ano',
     'description': 'Ano',
     'is_in_staging': True,
     'is_partition': False},
    {'name': 'pib',
     'description': 'Produto Interno Bruto a preços correntes',
     'is_in_staging': True,
     'is_partition': False},
    {'name': 'impostos_liquidos',
     'description': 'Impostos, líquidos de subsídios, sobre produtos a preços correntes',
     'is_in_staging': True,
     'is_partition': False},
    {'name': 'va',
     'description': 'Valor adicionado bruto a preços correntes total',
     'is_in_staging': True,
     'is_partition': False},
    {'name': 'va_agropecuaria',
     'description': 'Valor adicionado bruto a preços correntes da agropecuária',
     'is_in_staging': True,
     'is_partition': False},
    {'name': 'va_industria',
     'description': 'Valor adicionado bruto a preços correntes da indústria',
     'is_in_staging': True,
     'is_partition': False},
    {'name': 'va_servicos',
     'description': 'Valor adicionado bruto a preços correntes dos serviços, exclusive administração, defesa, educação e saúde públicas e seguridade social',
     'is_in_staging': True,
     'is_partition': False},
    {'name': 'va_adespss',
     'description': 'Valor adicionado bruto a preços correntes da administração, defesa, educação e saúde públicas e seguridade social',
     'is_in_staging': True,
     'is_partition': False}]},
  {'id': '297f5f2f-c5eb-4adb-94e0-b3d630f20ede',
   'name': 'Visualizar',
   'description': None,
   'position': 2,
   'url': 'https://www.ibge.gov.br/explica/pib.php',
   'cache_last_updated': None,
   'cache_url': None,
   'created': '2021-08-16T23:36:44.072002',
   'format': '',
   'hash': '',
   'last_modified': None,
   'metadata_modified': '2021-08-16T23:36:44.064040',
   'mimetype': None,
   'mimetype_inner': None,
   'package_id': '9ffa2eb2-3119-45f1-9353-7c279f1613e9',
   'size': None,
   'state': 'active',
   'url_type': None,
   'resource_type': 'external_link',
   'dataset_id': 'br_ibge_pib',
   'language': ['portuguese'],
   'has_api': 'no',
   'is_free': 'yes',
   'requires_registration': 'no',
   'availability': 'online',
   'country_ip_address_required': None,
   'license': 'mit'}],
 'groups': [{'id': '52e4efe1-c527-4446-88dc-33ec9af7abb8',
   'name': 'economia',
   'title': 'Economia',
   'type': 'group',
   'description': '',
   'image_url': '2019-09-19-055720.95356961SjkfwyNTL.png',
   'created': '2019-09-17T04:33:42.307242',
   'is_organization': False,
   'approval_status': 'approved',
   'state': 'active',
   'capacity': 'public',
   'display_name': 'Economia',
   'image_display_url': 'http://3.87.150.32/uploads/group/2019-09-19-055720.95356961SjkfwyNTL.png'}],
 'owner_org': 'b82f9164-33eb-4e10-9c26-8c99e4591db3',
 'organization': {'id': 'b82f9164-33eb-4e10-9c26-8c99e4591db3',
  'name': 'instituto-brasileiro-de-geografia-e-estatistica',
  'title': 'Instituto Brasileiro de Geografia e Estatística (IBGE)',
  'type': 'organization',
  'description': 'www.ibge.gov.br',
  'image_url': '2019-09-19-153117.558371IBGE.png',
  'created': '2019-09-14T20:59:07.312684',
  'is_organization': True,
  'approval_status': 'approved',
  'state': 'active'},
 'num_tags': 3,
 'tags': [{'id': '76afbcbc-d493-4508-be69-933ffb7c69ae',
   'name': 'PIB',
   'vocabulary_id': None,
   'state': 'active',
   'display_name': 'PIB'},
  {'id': '99df6909-4c0e-43fa-af10-afcccc8a035c',
   'name': 'crescimento',
   'vocabulary_id': None,
   'state': 'active',
   'display_name': 'crescimento'},
  {'id': '347907c3-92c3-45c9-9fcd-080fcd5e383f',
   'name': 'renda',
   'vocabulary_id': None,
   'state': 'active',
   'display_name': 'renda'}],
 'relationships_as_object': [],
 'relationships_as_subject': [],
 'dataset_id': 'br_ibge_pib',
 'isopen': False,
 'extras': [{'key': 'dataset_args', 'value': {'dataset_id': 'br_ibge_pib'}}]}

Reprodução do erro

Após subir o website localmente na branch develop, rode o seguinte código:

from ckanapi import RemoteCKAN
import requests

CKAN_URL = "http://0.0.0.0:5000"

ckan = RemoteCKAN(
    CKAN_URL,
    user_agent="",
    apikey=None
)

pib = requests.get('http://0.0.0.0:5000/api/3/action/package_show?id=br-ibge-pib').json()['result']
validate = ckan.action.package_validate(**pib)

[infra-final-quest] Pontos para o novo site

Geral

  • Colocar metadados de social links
  • Passar links das imagens para a Nayara

Página Home

  • Footer colocar pacotes na lista de produtos (@fernandascovino esse link já não seria o Datalake Público?)
  • “Procurar dados” na busca do mobile

Página Filtros

  • Ver sobre abrangência com o @rdahis
  • Traduzir periocidade (ver as opções com o @rdahis )
  • Trocar filtro do BD+ para resource_type (@brenodega28)
  • Deixar logo do BD+ clicável
  • Adicionar simbolo do BD Mais no filtro de Forma de Download

Página Datasets

  • Colocar tipo da coluna (endpoint novo) @vncsna @JoaoCarabetta @d116626
  • Ver mais na descrição
  • Botão download junto com os de códigos (Ver qual o campo com o @JoaoCarabetta @rdahis) https://storage.googleapis.com/basedosdados-public/one-click-download/{dataset_id}/{table_id}.zip
  • Limpar metadados do Dataset (ver com o @rdahis )
  • Ver se link externo tem descrição (ver com o @rdahis )
  • Tamanho em GB errado das tabelas
  • Remover packages duplicados e padronizar name com dash (@vncsna #88)
  • Corrigir campo title que está null em alguns datasets (@vncsna #88)

Backend

  • Limpar descrição repetida do dataset (@vncsna)
  • !!! Conferir se no package_search é possível filtrar por resource_type. (@vncsna
  • Adicionar no endpoint de bd_dataset_search o número de aparições de cada forma de donwload: BD Mais e Link Externo
  • Dar preferência para bdm_table na ordem dos conjuntos

#52


Entrevistas

Pontos relevantes da entrevista:

Filtros:

  • Typo "Poupulares" no menu de ordenação da busca.
  • Mudar nome "BD Mais" no filtro para "Tabelas BD+"
  • Mudar "Forma de download" para "Forma de acesso"
  • Ao clicar na imagem do conjunto (na busca), ir para pagina do conjunto e não para organização!

Conjuntos:

  • Mudar título Metadados para: Metadados [da tabela / do conjunto]. Para quem é de fora, não ficou claro que são informações diferentes.
  • Colocar o link do BigQuery - Retiramos sem querer hahaha Em Consulta aos dados, antes do "Primeira vez ...." colocar um "Clique para acessar o BigQuery" com hyperlink azul ;)
  • Adicionar título Recursos: acima do botão de Metadados no menu do Conjunto. Para quem é de forma, não está clara a relação dos itens no menu.

Outra mudança que temos que fazer é retirar itens de última atualização, pois existem alguns problemas:

  • Na migração todas as datas foram atualizadas
  • A data de atualização hoje não é do dado, mas das informações do conjunto - e isso pode confundir muita gente. Temos que ter isso mais claro entre dados e infra para trazer a informação correta @rdahis

Logo, o que devemos fazer:

  • Retirar + recentes da pagina inicial
  • Retirar Atualizado há X dias do card

Pontos da entrevista com o Fernando Barbalho:

  • Trocar palavra “BigQuery” para “SQL”, e adicionar outro botão “BigQuery” do lado de “Download” que de fato joga a pessoa pro BigQuery.
  • Mover o “Aprenda” pro lado de “Dados” no header.

Usar o dataset_id do resource:

  • Query SQL está com problema no dataset_id

[develop] `package_validate` não levanta exceção em caso de erro de validação

Descrição

Quando há não há sucesso na validação dos metadados, o endpoint package_validate não levanta a exceção ValidationError, embora ela seja definida no início do código:

ValidationError = logic.ValidationError

Comportamento esperado

Talvez o levantamento da exceção seja mais interessante para o uso do package_validate pelo cliente Python/CLI basedosdados, para não termos que parsear o resultado do endpoint e, possivelmente, quebrar o código com alguma mudança futura na estrutura da resposta da API, embora isso não seja tão provável, por ser uma resposta simples.

[infra] definir novo schema para a BD

Estrutura de pastas do validation:

package
    ckan_default_package
    dataset                                   [dataset.yaml]
resource
    ckan_default_resource
    bdm
        table                                 [table.yaml]
        columns                               [table.yaml]
        dictionary
    information_request         
    external_link			      [dataset.yaml]
  • entre [] os arquivos atuais que contém a informação

Gestão de Secrets

Problema:

Hoje os secrets e credenciais estao espalhados em diversos arquivos e lugares: prod_ckan_ini, .env.prod. Senhas de acessos como emails ou acessos pra ferramentas de terceiros estao centralizadas com pessoas especificas (DNS esta com o @rdahis, por exemplo).
Isso cria bottlenecks e riscos de inconsistencia pois, se alguem precisar atualizar o .env.prod, por exemplo, vai precisar falar com o @polvoazul, ou no minimo, informa-lo de atualizar tambem na sua maquina.

Objetivo:

Definir [uma ferramenta/um processo] de gestao de secrets para o basedosdados.

Requisitos:

1- Barato/Free, considerando um numero de usuarios de approx 10 pessoas.
2- Suporte a secrets de uma linha so (como senhas). Suporte a arquivos (prod_ckan_ini).
3- Autorizacao flexivel: pessoas diferentes podem ter acessos a grupos de senhas diferentes.
4- Interface humana de facil uso: uma interface grafica tranquila da galera cadastrar e editar secrets
5- Interface programatica: Ex.: o github CI conseguir acessar os secrets necessarios para o deploy diretamente do manager, assim nao corremos risco de inconsistencia.

[infra] criar testes para forms

Criar algum teste que faça o check do forms, inicialmente pode ser um teste que cheque se os imports necessaios para rodar os forms estão funcionando. Os testes ficam em /ckanext-basedosdados/ckanext/basedosdados/tests

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.