diff --git a/.github/workflows/build_tests.yml b/.github/workflows/build_tests.yml index 16d2526..bc959ed 100644 --- a/.github/workflows/build_tests.yml +++ b/.github/workflows/build_tests.yml @@ -2,7 +2,9 @@ name: Docker Image Build & CI Tests on: push: - branches: [ main ] + branches: + - main + - v0.2.x-alpha tags: [ tmp-rerun ] pull_request: branches: [ main ] @@ -18,14 +20,17 @@ jobs: steps: - uses: actions/checkout@v2 - name: Build the Docker image - run: docker build . --file Dockerfile --tag api-pgd + run: make build - name: Create pgadmin_data volume run: sudo mkdir -p pgadmin_data && sudo chown -R 5050:5050 ./pgadmin_data/ - - name: Run docker-compose + - name: Initialize environment variables + run: ./init/load_fief_env.sh -user-email api-pgd@nonexisting.gov.br --user-password=123456*abcdef + - name: Initialize Fief database + run: make fief-create-db + - name: Run all service containers run: docker-compose up -d env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres - POSTGRES_DB: api_pgd - name: run tests run: docker exec api-pgd_web_1 /bin/bash -c "./run_after_db.py \"pytest tests/\"" diff --git a/Makefile b/Makefile index 931b5e9..863b5e8 100644 --- a/Makefile +++ b/Makefile @@ -7,8 +7,9 @@ rebuild: docker build --rm -t api-pgd . .PHONY: setup -setup: init-fief-env +setup: init-fief-env fief-create-db +.PHONY: init-fief-env init-fief-env: ./init/load_fief_env.sh diff --git a/README.md b/README.md index 5f1dd12..9c233c0 100644 --- a/README.md +++ b/README.md @@ -54,14 +54,19 @@ possibilitar a sua consolidação em uma base de dados. sudo mkdir -p pgadmin_data && sudo chown -R 5050:5050 ./pgadmin_data/ ``` -5. A gestão de usuários é realizada por uma aplicação chamada Fief. Para - obter as suas configurações iniciais, as quais serão preenchidas no - passo seguinte, utilize o script: +5. Será necessário inicializar algumas configurações. Para isso, + utilize o script: ```bash make setup ``` + **Variáveis de ambiente do Fief** + + A gestão de usuários é realizada por uma aplicação chamada Fief. Para + obter as suas configurações iniciais, as quais serão preenchidas no + passo seguinte, + Será pedido um endereço de e-mail e uma nova senha para o usuário administrador do Fief. @@ -71,6 +76,22 @@ possibilitar a sua consolidação em uma base de dados. * o banco de dados (Postgres), e * a ferramenta de gestão de usuários (Fief), gerados no passo anterior. + Caso queira repetir esta etapa, utilize o comando: + + ```bash + make init-fief-env + ``` + + **Inicialização do database do Fief** + + É necessário criar o database `fief` dentro do Postgres. Esta etapa + é feita automaticamente com o comando `make setup`. No entanto, caso + precise repeti-la, use: + + ```bash + make fief-create-db + ``` + 6. Na gestão de usuários e controle de acesso da API é usada a aplicação [Fief](https://www.fief.dev/). Para o seu correto funcionamento pela interface Swagger UI, é necessário que ela seja alcançável pelo mesmo @@ -100,14 +121,6 @@ possibilitar a sua consolidação em uma base de dados. > Para ajustar as permissões das pastas `database` e `pgadmin_data` e > todas as suas subpastas - > ⚠️ Na primeira execução, o container do Fief vai apresentar erro - > por causa da inexistência do database `fief` dentro do Postgres. - > Para resolver, ainda com os contêineres rodando, execute: - > - > ```bash - > make fief-create-db - > ``` - 8. Por fim, é necessário configurar o Fief para incluir dados necessários ao funcionamento da API PGD (URI de autenticação, campos personalizados de usuários). Use: diff --git a/init/load_fief_env.sh b/init/load_fief_env.sh index 7928d23..0492fe3 100755 --- a/init/load_fief_env.sh +++ b/init/load_fief_env.sh @@ -4,7 +4,7 @@ cp init/.env.template .env # Generate FIEF env vars -docker run -it ghcr.io/fief-dev/fief:latest fief quickstart --docker | tee -i .env_fief +docker run -it ghcr.io/fief-dev/fief:latest fief quickstart --docker "$@" | tee -i .env_fief # Prepare the dest vars source_file=".env_fief"