8 Commits

Author SHA1 Message Date
Davidson Gomes
21e67e43a3 Merge branch 'release/0.0.11' 2025-05-16 12:15:48 -03:00
Davidson Gomes
c916b7a660 chore(changelog): update changelog for version 0.0.11 with service fixes 2025-05-16 12:15:41 -03:00
Davidson Gomes
c6916eabc5 Merge pull request #9 from Rodribm10/patch-2
Update docker-compose.yml
2025-05-16 09:51:19 -03:00
Davidson Gomes
7f35a9a6bc Merge pull request #10 from oriondesign2015/develop
⚙️ Fix: importação, seeders automáticos e verificação por e-mail
2025-05-16 09:50:36 -03:00
OrionDesign
6d7b1194d0 ✉️ Verificação manual por e-mail
### 📋 Descrição

Esta PR modifica o comportamento padrão de verificação de usuários no sistema, alterando o parâmetro `auto_verify` de `True` para `False` durante a criação de novos usuários.

####  Alteração específica

- Aplica-se ao serviço `client_service`.
- O valor `auto_verify=True` foi alterado para `False`.

---

### 🚀 Motivação

Atualmente, as contas são aprovadas automaticamente sem que o usuário defina uma senha, o que obriga o uso da funcionalidade de "Esqueci minha senha" para definir uma senha e acessar o painel. Esta PR tem como objetivo permitir que o usuário verifique a conta via e-mail, o que ativa a conta e permite que ele defina a senha de forma imediata, melhorando a experiência do usuario.

Objetivos principais:

- **Maior segurança:** Forçar a verificação por e-mail de novos usuários, garantindo que apenas contas confirmadas possam acessar o sistema.
- **Melhoria na experiência do usuário:** Eliminar a dependência do fluxo de "Esqueci minha senha" logo após o cadastro pelo administrador.

---

### 💥 Impacto

- Será necessário que o usuário confirme o cadastro via e-mail para ativar a conta e definir a senha.
- O processo de onboarding de novos usuários se torna mais controlado e seguro.

---

###  Testes realizados

- Verificado que novos usuários são criados com status de **não verificado**.
- Confirmado que apenas após a confirmação via e-mail o usuário pode acessar e definir a senha.
- Testado o **fluxo completo de registro e verificação manual por e-mail**.

---

### 📝 Observações

- Esta alteração **não afeta usuários já existentes** no sistema.
- O administrador pode cadastrar um novo usuário informando apenas nome e e-mail.
- O próprio usuário deve confirmar a conta por e-mail para poder criar a senha e acessar o sistema.
2025-05-16 03:44:23 -03:00
OrionDesign
1bcd76595c ⚙️ Fix: importação e seeders automáticos
### 📋 Descrição

Esta PR aborda dois pontos críticos identificados durante a execução do container da aplicação:

####  Correção de importação no `email_service.py`

- Corrigido o caminho da importação:
  - **De:** `from config.settings import settings`
  - **Para:** `from src.config.settings import settings`
- Essa alteração soluciona o erro `ModuleNotFoundError: No module named 'config'`, que impedia a inicialização da aplicação.

####  Execução automática dos seeders via Dockerfile

- Adicionado o script de seeders à sequência de inicialização da aplicação no Dockerfile.
- O comando de inicialização foi alterado para:
  ```bash
  alembic upgrade head && python -m scripts.run_seeders && uvicorn src.main:app --host $HOST --port $PORT
  ```
- Isso garante que os seeders (incluindo o usuário admin) sejam executados automaticamente após as migrações.

---

### 💥 Impacto

- Corrige o erro de importação, permitindo que a aplicação seja iniciada corretamente.
- Automatiza a criação do usuário admin e outros dados iniciais essenciais.
- Melhora a experiência de primeira execução, eliminando etapas manuais.

---

###  Testes realizados

- Verificado que a aplicação inicia corretamente após as alterações.
- Confirmado que os seeders são executados com sucesso, criando o usuário admin e outros dados iniciais conforme esperado.

---

### 📝 Observações

- O novo caminho de importação em `email_service.py` está alinhado com o padrão utilizado nos demais arquivos do projeto.
- Os seeders são executados somente após a conclusão bem-sucedida das migrações do banco de dados.
2025-05-16 01:51:47 -03:00
Rodribm10
6234e3838f Update docker-compose.yml 2025-05-15 20:39:14 -03:00
Davidson Gomes
ddb7650f59 Merge tag '0.0.10' into develop
v
2025-05-15 19:31:12 -03:00
5 changed files with 18 additions and 27 deletions

View File

@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.0.11] - 2025-05-16
### Changed
- Fixes on email service and client service
## [0.0.10] - 2025-05-15
### Added

View File

@@ -34,4 +34,4 @@ ENV PORT=8000 \
# Expose port
EXPOSE 8000
CMD alembic upgrade head && uvicorn src.main:app --host $HOST --port $PORT
CMD alembic upgrade head && python -m scripts.run_seeders && uvicorn src.main:app --host $HOST --port $PORT

View File

@@ -3,19 +3,15 @@ version: "3.8"
services:
api:
image: evo-ai-api:latest
build: .
container_name: evo-ai-api
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
- postgres
- redis
ports:
- "8000:8000"
environment:
POSTGRES_CONNECTION_STRING: postgresql://postgres:${POSTGRES_PASSWORD:-postgres}@postgres:5432/evo_ai
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_PORT: ${REDIS_PORT:-6379}
REDIS_PASSWORD: ${REDIS_PASSWORD:-""}
REDIS_SSL: "false"
REDIS_KEY_PREFIX: "a2a:"
@@ -29,7 +25,6 @@ services:
volumes:
- ./logs:/app/logs
- ./static:/app/static
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/"]
interval: 30s
@@ -41,12 +36,9 @@ services:
limits:
cpus: "1"
memory: 1G
networks:
- evo-network
postgres:
image: postgres:14-alpine
container_name: evo-ai-postgres
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
@@ -55,15 +47,12 @@ services:
- "${POSTGRES_PORT:-5432}:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
networks:
- evo-network
deploy:
resources:
limits:
@@ -72,8 +61,12 @@ services:
redis:
image: redis:alpine
container_name: evo-ai-redis
command: redis-server --appendonly yes ${REDIS_PASSWORD:+--requirepass ${REDIS_PASSWORD}}
command:
- redis-server
- --appendonly
- "yes"
- --requirepass
- "${REDIS_PASSWORD}"
ports:
- "${REDIS_PORT:-6379}:6379"
volumes:
@@ -83,9 +76,6 @@ services:
interval: 5s
timeout: 30s
retries: 50
restart: unless-stopped
networks:
- evo-network
deploy:
resources:
limits:
@@ -97,8 +87,3 @@ volumes:
name: ${POSTGRES_VOLUME_NAME:-evo-ai-postgres-data}
redis_data:
name: ${REDIS_VOLUME_NAME:-evo-ai-redis-data}
networks:
evo-network:
name: ${NETWORK_NAME:-evo-network}
driver: bridge

View File

@@ -154,7 +154,7 @@ def create_client_with_user(
# Use client ID to create the associated user
user, message = create_user(
db, user_data, is_admin=False, client_id=client.id, auto_verify=True
db, user_data, is_admin=False, client_id=client.id, auto_verify=False
)
if not user:

View File

@@ -37,7 +37,7 @@ import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from pathlib import Path
from config.settings import settings
from src.config.settings import settings
logger = logging.getLogger(__name__)