transparencia-mg / dpckan

MIT License
5 stars 4 forks source link

Armazenar propriedade ckan_hosts somente na instância CKAN #140

Closed fjuniorr closed 2 years ago

fjuniorr commented 2 years ago

@gabrielbdornas acho que temos um problema conceitual nessa implementação para o caso de uso do https://github.com/transparencia-mg/age7.

Lá, o arquivo datapackage.json é considerado um artefato descartável do processo de build, sendo literalmente um target do Makefile:

datapackage.json: scripts/python/build-datapackage.py datapackage.yaml schemas/* data/* logs/validate/* dialect.json README.md CHANGELOG.md CONTRIBUTING.md
    python $<

Isso significa que os metadados armazenados no datapackage.json, incluindo o ckan_hosts, são removidos depois da execução de um make datapackage.json. Seguindo essa lógica, a inserção do ckan_hosts pelo dpckan dataset create deveria ser no datapackage.yaml, e não no datapackage.json.

No entanto, a serialização como yaml não faz parte da especificação frictionless, pelo menos ainda, e representa um caso de uso específico. Não seria interessante que a gente dependesse desse escolha para que o usuário pudesse usar o dpckan dataset update.

Além disso, refletindo um pouco mais acho que no fim das contas não é uma boa ideia a gente modificar, ainda mais sem nenhum tipo de aviso ao usuário, o datapackage.json local.

Imagina por exemplo um cenário em que o usuário não está versionando o arquivo datapackage.json e o dpckan esteja com alguma falha que modifica e/ou destroi o conteúdo do arquivo. A confiança vai a zero.

Penso que a melhor alternativa vai ser a gente armazenar o ckan_hosts somente na propriedade extras do conjunto de dados no CKAN.

Originally posted by @fjuniorr in https://github.com/dados-mg/dpckan/issues/105#issuecomment-978411276

gabrielbdornas commented 2 years ago

Lembrar de fechar #132, após fechametno deste