diff --git a/README.md b/README.md new file mode 100644 index 0000000..d611a8f --- /dev/null +++ b/README.md @@ -0,0 +1,71 @@ +# DOI Manager + +É uma ferramenta desenvolvida para automatizar os registros de DOI pelas coleções que adotam a métodologia SciELO. Por meio do DOI Manager é possível gerenciar novos depósitos, re-depositar, contabilizar custos e buscar informações sobre sucesso e falha de depósitos passados. + +## Documentação + +Para mais informações sobre a ferramenta acesse o [índice da documentação](docs/README.md). + +## Métodos de instalação + +Os tópicos a seguir cobrem os requisitos básicos para a instalação da aplicação. + +### Variáveis de ambiente + +Configurar as variáveis de ambiente é um pré requisito para utilizar o DOI Manager. Os dados de configuração podem variar de acordo com o tipo de instalação, ambiente utilizado, sistema operacional, etc. Consulte a pessoa responsável pelo ambiente de `deploy` para obter mais detalhes. + +As seguintes variáveis devem ser configuradas: + +- `ARTICLEMETA_ADMINTOKEN` - Token utilizado para conectar ao ArticleMeta; +- `ARTICLEMETA_THRIFTSERVER` - Endereço do servidor thrift do ArticleMeta; +- `COLLECTION_ACRONYM` - Acrônimo da coleção em que o DOI Manager irá rodar; +- `CROSSREF_API_PASSWORD` - Senha da API do [Crossref](https://github.com/CrossRef/rest-api-doc) +- `CROSSREF_API_USER` - Usuário da API do Crossref; +- `CROSSREF_DEPOSITOR_EMAIL` - E-mail utilizado pelo depositor do DOI no Crossref; +- `CROSSREF_DEPOSITOR_NAME` - Nome utilizado pelo depositor do DOI no Crossref; +- `CROSSREF_PREFIX` - Prefixo utilizado pelo depositor do DOI no Crossref (ex: a SciELO utiliza o `10.1590`); +- `SQL_ENGINE` - URI utilizada para conectar ao Banco de dados (PostgreSQL) (ex: `postgresql://usuario:senha@db:5432/banco_de_dados`); +- `LOGGING_LEVEL` - Nível de log utilizado pela aplicação; + +### Instalação direta + +Para realizar uma instalação direta, sem auxílio de containers, deve-se atentar para os seguintes pré requisitos: + +- Python **3.5.2** +- Libxml2 dev +- PostgreSQL [**9.5**](https://hub.docker.com/r/scieloorg/inbox_postgres) +- Celery **4.2.1** +- Redis >= **4.0** <= **5.0** +- Musl dev + +Faça o download da aplicação, desempacote o código e execute o comando: + +```shell +pip install -r requirements.txt +``` + +Faça uma cópia dos arquivos de inicialização e configure as variáveis necessárias ao seu ambiente: + +```shell +cp production.ini-TEMPLATE config.ini +cp alembic.ini-TEMPLATE alembic.ini +``` + +### Instalação via imagem Docker + +É possível usar o `docker-compose` para facilitar a instalação do ambiente via Docker, utilize o comando: + +```shell +docker-compose up +``` + +O build das imagens será realizado e o ambiente deve ser inicialiado de acordo com o processo definido no arquivo `docker-compose.yml`. + + +## Métodos de operação + +O DOI Manager **não é** auto suficiente ao depositar os registros DOI, é necessário a intervenção humana para inicializar o processo de registro. Após instalação do DOI Manager o Comando `processing_export_doi` estará disponível a partir da linha de comando, para mais opções execute o comando `processing_export_doi --help`. + +Ao configurar o ambiente de `deploy` da aplicação é recomendável que se configure agendadores de execução para o comando `processing_export_doi`. + +**ATENÇÃO** :warning: O DOI Manager é dependente dos dados vindos do [`ArticleMeta`](https://github.com/scieloorg/articles_meta/), a execução do comando `processing_export_doi` só deverá acontecer após o `ArticleMeta` estar **ATUALIZADO**. Para mais detalhes sobre *datas e horários de atualização* consulte a pessoa responsável pela infraestrutura. diff --git a/README.rst b/README.rst deleted file mode 100644 index acb8a53..0000000 --- a/README.rst +++ /dev/null @@ -1,70 +0,0 @@ -DOI Manager -=========== - -Gerencia e realiza depósitos dos metadados dos artigos junto ao Crossref. - -Esta aplicação obtém os dados do Article Meta, via Thrift. - - -Instalação ----------- - -Para instalar no modo deselvolvimento, execute o comando:: - - pip install -e .[dev] - - -Serviços para Produção ----------------------- - -Para o funcionamento da aplicação, é necessário configurar: - -- Banco de Dados: responsável por armazenar os registros dos documentos -- exportdoi: responsável por consultar os documentos processados no Article Meta, de acordo com os parâmetros informados, e armazená-los na Base de Dados. - É executado através da linha de comando:: - - processing_export_doi [-h] [--issns_file ISSNS_FILE] --collection - COLLECTION [--from_date FROM_DATE] - [--until_date UNTIL_DATE] - [--date_range DATE_RANGE] - [--logging_level {DEBUG,INFO,WARNING,ERROR,CRITICAL}] - [--sentry_handler SENTRY_HANDLER] - [issns [issns ...]] - - Argumentos: - issns ISSN's seperados por espaço - - Argumentos opcionais: - -h, --help Exibe este texto de ajuda - --issns_file ISSNS_FILE, -i ISSNS_FILE - Path completo para um arquivo TXT com a lista de ISSNs - a serem exportados - --collection COLLECTION, -c COLLECTION - Acrônimo da coleção a ser exportada - --from_date FROM_DATE, -f FROM_DATE - Data inicial de processamento dos documentos - (processing_date), no formato ISO no formato YYYY-MM-DD, - para a exportação. - Ex.: 2019-07-20 - --until_date UNTIL_DATE, -g UNTIL_DATE - Data final de processamento dos documentos - (processing_date), no formato ISO no formato YYYY-MM-DD, - para a exportação. - Ex.: 2019-07-20 - --date_range DATE_RANGE, -r DATE_RANGE - Número de dias anteriores à data corrente para a data de - processamento dos documentos a serem exportados. Este - sobrescreverá qualquer definição dos argumentos from_date - e until_date. - --logging_level {DEBUG,INFO,WARNING,ERROR,CRITICAL}, -l {DEBUG,INFO,WARNING,ERROR,CRITICAL} - Logging level - --sentry_handler SENTRY_HANDLER - DSN do Sentry. Esta opção tem precedência sobre a - configuração da variável de ambiente SENTRY_HANDLER - - -- Dashboard: interface WEB desta aplicação -- Celeryworker: responsável por enfileirar as tarefas de depósito no CrossRef -- Celeryworker-dispacher: responsável por executar as tarefas enfileiradas pelo Celeryworker. Este não recebe o status do depósito de documentos. -- Celeryworker-releaser: responsável por consultar o status do depósito de documentos no CrossRef. -- Redis: armazena as filas diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..3cf9402 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,3 @@ +# Índice da documentação + +* [Módulos e serviços para o ambiente de produção](production-services.md) \ No newline at end of file diff --git a/docs/production-services.md b/docs/production-services.md new file mode 100644 index 0000000..2d42c3e --- /dev/null +++ b/docs/production-services.md @@ -0,0 +1,53 @@ +# Serviços para Produção + +Para o funcionamento da aplicação, é necessário configurar: + +- Banco de Dados: responsável por armazenar os registros dos documentos +- Exportdoi: responsável por consultar os documentos processados no Article Meta, de acordo com os parâmetros informados, e armazená-los na Base de Dados. É executado através da linha de comando:: + +```shell +processing_export_doi [-h] [--issns_file ISSNS_FILE] --collection + COLLECTION [--from_date FROM_DATE] + [--until_date UNTIL_DATE] + [--date_range DATE_RANGE] + [--logging_level {DEBUG,INFO,WARNING,ERROR,CRITICAL}] + [--sentry_handler SENTRY_HANDLER] + [issns [issns ...]] + +Argumentos: + issns ISSN\'s seperados por espaço + +Argumentos opcionais: + -h, --help Exibe este texto de ajuda + --issns_file ISSNS_FILE, -i ISSNS_FILE + Path completo para um arquivo TXT com a lista de ISSNs + a serem exportados + --collection COLLECTION, -c COLLECTION + Acrônimo da coleção a ser exportada + --from_date FROM_DATE, -f FROM_DATE + Data inicial de processamento dos documentos + (processing_date), no formato ISO no formato YYYY-MM-DD, + para a exportação. + Ex.: 2019-07-20 + --until_date UNTIL_DATE, -g UNTIL_DATE + Data final de processamento dos documentos + (processing_date), no formato ISO no formato YYYY-MM-DD, + para a exportação. + Ex.: 2019-07-20 + --date_range DATE_RANGE, -r DATE_RANGE + Número de dias anteriores à data corrente para a data de + processamento dos documentos a serem exportados. Este + sobrescreverá qualquer definição dos argumentos from_date + e until_date. + --logging_level {DEBUG,INFO,WARNING,ERROR,CRITICAL}, -l {DEBUG,INFO,WARNING,ERROR,CRITICAL} + Logging level + --sentry_handler SENTRY_HANDLER + DSN do Sentry. Esta opção tem precedência sobre a + configuração da variável de ambiente SENTRY_HANDLER +``` + +- Dashboard: interface WEB desta aplicação +- Celeryworker: responsável por enfileirar as tarefas de depósito no CrossRef +- Celeryworker-dispacher: responsável por executar as tarefas enfileiradas pelo Celeryworker. Este não recebe o status do depósito de documentos. +- Celeryworker-releaser: responsável por consultar o status do depósito de documentos no CrossRef. +- Redis: armazena as filas diff --git a/setup.py b/setup.py index b54d97f..32ae3ca 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ from setuptools import setup, find_packages here = os.path.abspath(os.path.dirname(__file__)) -with open(os.path.join(here, 'README.rst')) as f: +with open(os.path.join(here, 'README.md')) as f: README = f.read() install_requires = [