Configurações do Painel AVA =========================== Esta página documenta **todas** as configurações e variáveis de ambiente utilizadas pelo **Painel AVA** (localizado em ``./painel_ava``). Essas configurações estão organizadas de acordo com a estrutura de módulos contida na pasta ``src/settings/`` do projeto. Configurações Básicas e de Debug (``indebug.py``) ------------------------------------------------- * **``DJANGO_DEBUG``** (Bool, Padrão: ``False``): Define se o Django rodará em modo de depuração. **Importante:** Em produção, esta variável deve ser definida como ``False``. Configurações de Segurança e Contas (``securities.py``) ------------------------------------------------------- * **``DJANGO_SECRET_KEY``** (String, Padrão: ``"#warning: changeme"``): Chave secreta exclusiva do Django para fins de assinatura e criptografia de sessões/cookies. Em produção, use uma chave complexa e secreta de pelo menos 50 caracteres. * **``DJANGO_LOGIN_URL``** (String, Padrão: ``"http://localhost:8092/login/"``): A URL de redirecionamento para login do usuário. * **``DJANGO_LOGIN_REDIRECT_URL``** (String, Padrão: ``"http://localhost:8092/"``): A URL para onde o usuário é enviado após autenticação bem-sucedida. * **``DJANGO_LOGOUT_REDIRECT_URL``** (String, Padrão: ``"https://suap.ifrn.edu.br/comum/logout/"``): A URL de redirecionamento após o logout. * **``DJANGO_AUTH_USER_MODEL``** (String, Padrão: ``"a4.Usuario"``): O modelo de usuário customizado utilizado para a autenticação. * **``DJANGO_CSRF_COOKIE_DOMAIN``** (String, Padrão: ``None``): O domínio para o qual o cookie CSRF será válido. * **``DJANGO_CSRF_COOKIE_NAME``** (String, Padrão: ``"csrftoken"``): Nome do cookie utilizado para a proteção de CSRF. * **``DJANGO_CSRF_COOKIE_PATH``** (String, Padrão: ``"/"``): O caminho configurado no cookie CSRF. * **``DJANGO_CSRF_COOKIE_SAMESITE``** (String, Padrão: ``"Lax"``): Diretiva SameSite para o cookie CSRF. * **``DJANGO_CSRF_FAILURE_VIEW``** (String, Padrão: ``"django.views.csrf.csrf_failure"``): A view chamada em caso de falha na validação CSRF. * **``DJANGO_CSRF_HEADER_NAME``** (String, Padrão: ``"HTTP_X_CSRFTOKEN"``): Nome do cabeçalho da requisição HTTP que carrega o token CSRF. * **``SUAP_INTEGRADOR_KEY``** (String, Padrão: ``"#warning: changeme"``): Token de API de segurança utilizado na comunicação e validação de requisições provenientes do SUAP. * **``SUAP_BASE_URL``** (String, Padrão: ``"https://suap.ifrn.edu.br"``): URL base da instância principal do SUAP. **Configuração do Provedor OAuth2 (SGA/SUAP):** * **``OAUTH_BASE_URL``** (String, Padrão: ``"https://suap.ifrn.edu.br"``): URL base utilizada pelo provedor de autenticação e identificação OAuth2. * **``OAUTH_AUTHORIZE_URL``** (String, Padrão: ``"{OAUTH_BASE_URL}/o/authorize/"``): Endpoint de autorização OAuth2. * **``OAUTH_TOKEN_URL``** (String, Padrão: ``"{OAUTH_BASE_URL}/o/token/"``): Endpoint para troca do authorization code pelo token de acesso. * **``OAUTH_USERINFO_URL``** (String, Padrão: ``"{OAUTH_BASE_URL}/api/rh/eu/"``): Endpoint para obter dados pessoais do usuário autenticado. * **``OAUTH_VINCULOS_URL``** (String, Padrão: ``"{OAUTH_BASE_URL}/api/rh/meus-vinculos/"``): Endpoint de consulta aos vínculos acadêmicos e funcionais do usuário. * **``OAUTH_CLIENT_ID``** (String, Padrão: ``"#warning: changeme"``): Client ID registrado no provedor OAuth2. * **``OAUTH_CLIENT_SECRET``** (String, Padrão: ``"#warning: changeme"``): Client Secret correspondente ao registro OAuth2. * **``OAUTH_REDIRECT_URI``** (String, Padrão: ``"http://painel/authenticate/"``): URI de redirecionamento configurada no provedor OAuth2. Configurações de Banco de Dados (``databases.py``) ------------------------------------------------- * **``POSTGRES_ENGINE``** (String, Padrão: ``"django.db.backends.postgresql"``): O engine do banco de dados utilizado. * **``POSTGRES_HOST``** (String, Padrão: ``"db"``): Host de conexão do PostgreSQL. * **``POSTGRES_PORT``** (String/Int, Padrão: ``"5432"``): Porta de conexão do PostgreSQL. * **``POSTGRES_DATABASE``** (String, Padrão: ``"painel"``): Nome da base de dados PostgreSQL. * **``POSTGRES_USER``** (String, Padrão: ``"ava_user"``): Nome do usuário de banco de dados. * **``POSTGRES_PASSWORD``** (String, Padrão: ``"ava_pass"``): Senha do usuário do banco de dados. * **``POSTGRES_OPTIONS``** (String, Padrão: ``""``): Opções de conexão extras passadas ao driver PostgreSQL. **Pool de Conexões (Opcional):** * **``DEFAULT_POOL_ACTIVE``** (Bool, Padrão: ``False``): Habilita ou desabilita o pool de conexões com o PostgreSQL. * **``DEFAULT_POOL_MIN_SIZE``** (Int, Padrão: ``1``): Tamanho mínimo do pool de conexões. * **``DEFAULT_POOL_MAX_SIZE``** (Int, Padrão: ``100``): Tamanho máximo do pool de conexões. * **``DEFAULT_POOL_NAME``** (String, Padrão: ``""``): Nome associado ao pool. * **``DEFAULT_POOL_TIMEOUT``** (Int, Padrão: ``1``): Tempo limite de aquisição de conexão no pool. * **``DEFAULT_POOL_MAX_LIFETIME``** (Int, Padrão: ``1200``): Tempo de vida útil máximo de uma conexão física em segundos. * **``DEFAULT_POOL_MAX_IDLE``** (Int, Padrão: ``600``): Tempo máximo de inatividade em segundos de uma conexão antes de ser liberada. * **``DEFAULT_POOL_RECONNECT_TIMEOUT``** (Int, Padrão: ``300``): Tempo de espera antes de tentar restabelecer uma conexão perdida. * **``DEFAULT_POOL_NUM_WORKERS``** (Int, Padrão: ``3``): Quantidade de threads paralelas para monitoramento do pool. Configurações de Cache (``caches.py``) -------------------------------------- * **``DJANGO_CACHES_DEFAULT_LOCATION``** (String/List, Padrão: ``"redis://cache:6379/1"``): URL de conexão da instância do Redis usada como cache da aplicação. * **``DASHBOARD_CACHE_ENABLED``** (Bool, Padrão: ``False``): Habilita o cacheamento dos dados de cards e turmas exibidos no dashboard principal do Painel. * **``DASHBOARD_CACHE_TIMEOUT``** (Int, Padrão: ``300``): Tempo de expiração (TTL) em segundos das requisições em cache do dashboard. Configurações de Aplicativos e Customizações (``apps.py`` / ``developments.py``) --------------------------------------------------------------------------------- * **``SHOW_USERWAY``** (Bool, Padrão: ``True``): Habilita a exibição do botão e do widget de acessibilidade do UserWay. * **``USERWAY_ACCOUNT``** (String, Padrão: ``None``): Chave de conta do UserWay associada à instituição. * **``SHOW_VLIBRAS``** (Bool, Padrão: ``True``): Exibe o widget flutuante de tradução em Libras (VLibras) na interface do usuário. * **``SHOW_SUPPORT_FORM``** (Bool, Padrão: ``True``): Determina se exibe o formulário de suporte e chamados. * **``SHOW_SUPPORT_CHAT``** (Bool, Padrão: ``True``): Determina se exibe o botão ou balão de chat de suporte online. * **``HOSTNAME``** (String, Padrão: ``"-"``): Nome do host identificador da máquina servidora atual (útil para auditoria e logs). * **``MY_APPS``** (List, Padrão: ``["theme_ifrn23", "theme_ifrn25", "backup", "painel", "health", "base"]``): Lista de módulos e aplicações internas que compõem a lógica de negócios da aplicação. * **``THIRD_APPS``** (List, Padrão: contendo bibliotecas de terceiros como ``django_extensions``, ``sass_processor``, etc.): Configuração de bibliotecas externas integradas ao framework. * **``DJANGO_APPS``** (List, contendo as apps nativas do Django): Lista das aplicações padrão do framework Django. * **``HACK_APPS``** (List, Padrão: ``["a4"]``): Módulos de interceptação e middlewares de autenticação/sessão adaptados da suite. * **``DEV_APPS``** (List, Padrão: ``["debug_toolbar"]``): Aplicações que serão carregadas em modo desenvolvimento para depuração e inspeção. Configurações de E-mail (``emails.py``) --------------------------------------- * **``DJANGO_EMAIL_BACKEND``** (String, Padrão: ``"django.core.mail.backends.smtp.EmailBackend"``): O backend de e-mail utilizado. * **``DJANGO_EMAIL_FILE_PATH``** (String, Padrão: ``None``): O diretório para salvar e-mails em formato de texto caso o backend de arquivos esteja ativo. * **``DJANGO_EMAIL_HOST``** (String, Padrão: ``"mail"``): Servidor SMTP de envio de e-mails. * **``DJANGO_EMAIL_PORT``** (Int, Padrão: ``1025``): Porta do servidor SMTP. * **``DJANGO_EMAIL_HOST_USER``** (String, Padrão: ``""``): Usuário de autenticação no servidor SMTP. * **``DJANGO_EMAIL_HOST_PASSWORD``** (String, Padrão: ``""``): Senha de autenticação no servidor SMTP. * **``DJANGO_EMAIL_SUBJECT_PREFIX``** (String, Padrão: ``""``): Prefixo a ser inserido no assunto de cada e-mail disparado pelo sistema. * **``DJANGO_EMAIL_USE_LOCALTIME``** (Bool, Padrão: ``False``): Se ativado, utiliza a hora local em vez de UTC nos cabeçalhos de data de e-mail. * **``DJANGO_EMAIL_USE_TLS``** (Bool, Padrão: ``False``): Habilita criptografia de transporte TLS para a conexão SMTP. * **``DJANGO_EMAIL_USE_SSL``** (Bool, Padrão: ``False``): Habilita criptografia SSL na conexão com o servidor SMTP. * **``DJANGO_EMAIL_SSL_CERTFILE``** (String, Padrão: ``None``): Caminho para o certificado SSL da conexão. * **``DJANGO_EMAIL_SSL_KEYFILE``** (String, Padrão: ``None``): Caminho para a chave privada SSL da conexão. * **``DJANGO_EMAIL_TIMEOUT``** (Int/Bool, Padrão: ``None``): Timeout da conexão com o servidor de e-mails em segundos. * **``DJANGO_DEFAULT_FROM_EMAIL``** (String, Padrão: ``"Atendimento do SUAP-Login "``): Endereço de e-mail padrão do remetente. * **``DEFAULT_REPLYTO_EMAIL``** (List, Padrão: ``["Atendimento do SUAP-Login "]``): Lista de e-mails para preenchimento do cabeçalho "Reply-To" (Responder Para). Configurações de Rotas e Recursos (``routings.py``) --------------------------------------------------- * **``DJANGO_WSGI_APPLICATION``** (String, Padrão: ``"wsgi.application"``): Caminho do arquivo de inicialização WSGI do servidor. * **``DJANGO_ROOT_URL_PATH``** (String, Padrão: ``""``): Prefixo de rota base (caso o app seja servido sob um subdiretório de URL). * **``DJANGO_ROOT_URLCONF``** (String, Padrão: ``"urls"``): Caminho do arquivo principal de roteamento de URLs. * **``DJANGO_MEDIA_URL``** (String, Padrão: ``"{ROOT_URL_PATH}/media/"``): URL pública para acessar arquivos de mídia e uploads dos usuários. * **``DJANGO_MEDIA_ROOT``** (String, Padrão: ``"/app/media"``): Diretório absoluto no servidor onde os uploads físicos serão salvos. * **``DJANGO_STATIC_URL``** (String, Padrão: ``"static/"``): URL para acesso a arquivos estáticos (CSS, JS, Imagens). * **``DJANGO_STATIC_ROOT``** (String, Padrão: ``"/app/static"``): Diretório físico absoluto no servidor onde o comando ``collectstatic`` consolidará os arquivos. * **``MARKDOWNX_URLS_PATH``** (String, Padrão: ``"{ROOT_URL_PATH}/markdownx/markdownify/"``): URL da API de renderização Markdown. * **``MARKDOWNX_UPLOAD_URLS_PATH``** (String, Padrão: ``"{ROOT_URL_PATH}/markdownx/upload/"``): URL do endpoint de upload de mídias via Markdown. Configurações de Sessão e Cookies (``sessions.py``) --------------------------------------------------- * **``DJANGO_SESSION_KEY``** (String, Padrão: ``"painelava"``): Chave identificadora única do cookie de sessão. * **``DJANGO_SESSION_COOKIE_NAME``** (String, Padrão: ``"{SESSION_KEY}_sessionid"``): Nome final gerado para o cookie de sessão do usuário no navegador. * **``DJANGO_SESSION_COOKIE_DOMAIN``** (String, Padrão: ``None``): Domínio configurado para validade do cookie de sessão. * **``DJANGO_SESSION_COOKIE_PATH``** (String, Padrão: ``"/"``): Caminho configurado no cookie de sessão. * **``DJANGO_SESSION_COOKIE_SAMESITE``** (String, Padrão: ``"Lax"``): Definição de segurança SameSite do cookie de sessão (ex: ``"Lax"``, ``"Strict"``, ``"None"``). * **``DJANGO_SESSION_FILE_PATH``** (String, Padrão: ``None``): Caso a sessão seja gravada em arquivos, diretório onde elas serão persistidas. * **``DJANGO_SESSION_SERIALIZER``** (String, Padrão: ``"django.contrib.sessions.serializers.JSONSerializer"``): Classe utilizada pelo Django para serialização dos dados da sessão. * **``DJANGO_SESSION_ENGINE``** (String, Padrão: ``"django.contrib.sessions.backends.cache"``): Engine de armazenamento de sessão. Por padrão, utiliza o cache Redis de alto desempenho. Configurações de Monitoramento e Logs (``observabilities.py`` / ``loggings.py``) -------------------------------------------------------------------------------- * **``GTAG_CODE``** (String, Padrão: ``None``): Código do Google Analytics (Tag global do site) injetado na interface do portal. * **``CLARITY_CODE``** (String, Padrão: ``None``): Token de rastreamento do Microsoft Clarity para gravação de sessões e análise de usabilidade. * **``SENTRY_DNS``** (String, Padrão: ``None``): Endereço de DSN exclusivo do projeto cadastrado no Sentry. * **``SENTRY_ENVIRONMENT``** (String, Padrão: ``"local"``): Ambiente de execução enviado ao Sentry para fins de agrupamento e triagem de erros (ex: ``production``, ``staging``). * **``SENTRY_RELEASE``** (String, Padrão: versão corrente da aplicação): Versão de release do código mapeada nos relatórios de erros do Sentry. * **``DJANGO_LOGLEVEL``** (String, Padrão: ``"DEBUG"``): Severidade mínima de logs capturados na saída padrão (stdout) e arquivos da aplicação. Configurações de Internacionalização (``internationalizations.py``) --------------------------------------------------------------------- * **``DJANGO_USE_I18N``** (String/Bool, Padrão: ``"pt-br"`` / ``True``): Habilita o sistema de tradução do Django e serve como base para definição de ``LANGUAGE_CODE`` e ``TIME_ZONE``.