Pular para o conteúdo principal

Inventario do Repositorio

Proposito do repo

Este repositorio mantem um backend WordPress do projeto Dhedalos, com dominio principal implementado no tema we-dhedalos e exposto via API REST customizada.

  • Evidencia: we-dhedalos/style.css:2
  • Evidencia: we-dhedalos/functions.php:16
  • Evidencia: we-dhedalos/functions/rest/courses.php:14

Entrypoints

  1. Stack local por containers (mariadb, redis, wordpress, nginx, init).
  • Evidencia: docker-compose.yml:2
  1. Bootstrap WordPress por wp-config.php, carregando wp-settings.php.
  • Evidencia: wordpress/wp-config.php:147
  1. Tema WordPress we-dhedalos carregado no build da imagem e em bind mount no ambiente local.
  • Evidencia: Dockerfile:24
  • Evidencia: docker-compose.yml:24
  1. Bootstrap do dominio no tema via functions.php, com carga automatica de modulos em functions/*.
  • Evidencia: we-dhedalos/functions.php:16
  • Evidencia: we-dhedalos/functions.php:33
  1. Entrypoint HTTP via Nginx para index.php e PHP-FPM em wordpress:9000.
  • Evidencia: docker/nginx.conf:9
  • Evidencia: docker/nginx.conf:14
  1. API REST com namespace dhedalos/v1 e prefixo global alterado de /wp-json para /api.
  • Evidencia: we-dhedalos/functions/rest/courses.php:14
  • Evidencia: we-dhedalos/functions/wp/rest_path.php:5

Principais pastas e responsabilidade

  • we-dhedalos/: tema WordPress com regra de negocio e modulos (utils, rest, post_types, taxonomies, etc.).

    • Evidencia: we-dhedalos/style.css:2
    • Evidencia: we-dhedalos/functions.php:16
  • we-dhedalos/functions/rest/: endpoints REST (register_rest_route) da API de negocio.

    • Evidencia: we-dhedalos/functions/rest/courses.php:66
    • Evidencia: we-dhedalos/functions/rest/tests-fixtures.php:46
  • we-dhedalos/functions/post_types/: post types e logs de dominio (inclui rotinas de limpeza de logs).

    • Evidencia: we-dhedalos/functions/post_types/dynamic_logs.php:1010
    • Evidencia: we-dhedalos/functions/post_types/user_action_log.php:99
  • wordpress/: raiz do WordPress usada localmente, incluindo wp-config.php.

    • Evidencia: docker-compose.yml:25
    • Evidencia: wordpress/wp-config.php:1
  • wp/: artefatos auxiliares de runtime (drop-in de cache Redis, plugins zipados, WP-CLI wrapper).

    • Evidencia: Dockerfile:16
    • Evidencia: Dockerfile:26
    • Evidencia: wp/wp-su.sh:1
  • docker/: configuracoes de infraestrutura local (Nginx e PHP).

    • Evidencia: docker-compose.yml:26
    • Evidencia: docker-compose.yml:52
  • helm/: chart para deploy Kubernetes (deployment, service, ingress, env via secret).

    • Evidencia: helm/templates/deployment.yaml:1
    • Evidencia: helm/templates/deployment.yaml:65
  • kubernetes/: valores por ambiente/cluster (ingress, envSecret, persistencia).

    • Evidencia: kubernetes/oke-we-001/dhedalos-ecosystem/values.yaml:2
    • Evidencia: kubernetes/oke-we-002/piloto-dhedalos-ecosystem/values.yaml:1
  • .github/workflows/: pipeline CI/CD para build e deploy com Helm.

    • Evidencia: .github/workflows/ci-cd-pipeline.yml:1
    • Evidencia: .github/workflows/ci-cd-pipeline.yml:77

Integracoes externas identificadas (URLs, SDKs, env vars)

  • Novu (notificacoes): usa NOVU_API_URL e NOVU_API_KEY em runtime.

    • Evidencia: docker-compose.yml:28
    • Evidencia: we-dhedalos/functions/wp/config.php:68
    • Evidencia: we-dhedalos/functions/utils/notify_course_start_date_cron.php:94
  • SimplyBook API: base URL https://user-api-v2.simplybook.me/admin/.

    • Evidencia: we-dhedalos/functions/3rd/simplybook.php:13
  • 8x8/Jitsi: integracao JWT e fallback para https://meet.jit.si.

    • Evidencia: we-dhedalos/functions/3rd/8x8.php:5
    • Evidencia: we-dhedalos/functions/3rd/8x8.php:138
  • API de agenda (configuravel via ACF): usa schedule_url e schedule_app_key.

    • Evidencia: we-dhedalos/functions/acfs/group_620d0ae527994.php:319
    • Evidencia: we-dhedalos/functions/wp/user.php:95
  • API de submissao de atividades: usa API_DELIVERABLE_SUBSCRIPTIONS_URL e API_DELIVERABLE_SUBSCRIPTIONS_KEY.

    • Evidencia: docker-compose.yml:44
    • Evidencia: we-dhedalos/functions.php:92
  • ViaCEP para enriquecimento de endereco em importacao de participantes.

    • Evidencia: we-dhedalos/functions/wp/classes/importers/students.php:208
  • SDKs/bibliotecas PHP de integracao no backend:

    • firebase/php-jwt
    • phpoffice/phpspreadsheet
    • Evidencia: we-dhedalos/functions/3rd/composer.json:3
  • Dependencia de registry Docker no CI/CD (DOCKER_REGISTRY, DOCKER_REPOSITORY, DOCKER_USERNAME, DOCKER_PASSWORD).

    • Evidencia: .github/workflows/ci-cd-pipeline.yml:36
    • Evidencia: .github/workflows/ci-cd-pipeline.yml:37

Jobs / cron / queues / workers

WP-Cron identificados

  • verificar_ciclos_finalizados_evento (daily).

    • Evidencia: we-dhedalos/functions.php:46
  • course_start_today_notify (daily, 06:00 America/Sao_Paulo).

    • Evidencia: we-dhedalos/functions/utils/notify_course_start_date_cron.php:9
    • Evidencia: we-dhedalos/functions/utils/notify_course_start_date_cron.php:11
  • course_start_tomorrow_notify (daily, 08:00 America/Sao_Paulo).

    • Evidencia: we-dhedalos/functions/utils/notify_course_start_date_cron.php:36
    • Evidencia: we-dhedalos/functions/utils/notify_course_start_date_cron.php:38
  • auto_cancel_enrollments_daily (daily, 23:00 America/Sao_Paulo).

    • Evidencia: we-dhedalos/functions/utils/auto_cancel_enrollments_cron.php:11
    • Evidencia: we-dhedalos/functions/utils/auto_cancel_enrollments_cron.php:13
  • inactive_users_notification_daily (daily, 23:30 America/Sao_Paulo).

    • Evidencia: we-dhedalos/functions/utils/inactive_users_notification_cron.php:11
    • Evidencia: we-dhedalos/functions/utils/inactive_users_notification_cron.php:13
  • last_day_notification_daily (daily, 21:30 America/Sao_Paulo).

    • Evidencia: we-dhedalos/functions/utils/last_day_notification_cron.php:11
    • Evidencia: we-dhedalos/functions/utils/last_day_notification_cron.php:13
  • Limpeza automatica de logs (delete_old_dynamic_logs, delete_old_user_log_actions, delete_old_sub_log_actions, delete_old_cancellation_logs).

    • Evidencia: we-dhedalos/functions/post_types/dynamic_logs.php:1011
    • Evidencia: we-dhedalos/functions/post_types/user_action_log.php:100
    • Evidencia: we-dhedalos/functions/post_types/presence_log.php:128
    • Evidencia: we-dhedalos/functions/post_types/cancellation_logs.php:112

Queues/workers

Nao foi encontrado sistema de fila com broker (RabbitMQ/SQS/Kafka) neste repositorio. O processamento assincrono e feito por WP-Cron e, em Kubernetes, ha deployment dedicado wp-cron.

  • Evidencia de modelo usado: we-dhedalos/functions.php:37
  • Evidencia de modelo usado: we-dhedalos/functions/utils/auto_cancel_enrollments_cron.php:10
  • Evidencia de worker dedicado: helm/templates/wp-cron-deployment.yaml:4
  • Evidencia de execucao ciclica: helm/templates/wp-cron-deployment.yaml:87

Storage / caches

  • Banco relacional MariaDB no ambiente local (mariadb:10.3).

    • Evidencia: docker-compose.yml:4
  • Cache Redis com volume local cache:/data.

    • Evidencia: docker-compose.yml:10
    • Evidencia: docker-compose.yml:16
  • Object cache persistente do WordPress por drop-in Redis (wp/object-cache.php).

    • Evidencia: Dockerfile:26
    • Evidencia: wp/object-cache.php:3
  • Cache de aplicacao com transients e wp_cache_*.

    • Evidencia: we-dhedalos/functions/3rd/simplybook.php:66
    • Evidencia: we-dhedalos/functions/utils/cache.php:5
  • Diretório customizado em uploads (wp-content/uploads/dhedalos).

    • Evidencia: we-dhedalos/functions/wp/config.php:25
  • Persistencia de uploads no deploy Kubernetes via PVC quando habilitado.

    • Evidencia: helm/templates/deployment.yaml:82
    • Evidencia: helm/templates/deployment.yaml:123
  • Tabelas customizadas no banco para logs tecnicos.

    • wp_simplybook_api_requests_log
    • wp_user_patch_log
    • Evidencia: we-dhedalos/functions/3rd/log.php:24
    • Evidencia: we-dhedalos/functions/utils/user_patch_log.php:12

Lista de variaveis de ambiente encontradas

Variaveis declaradas em docker-compose.yml

  • MYSQL_ROOT_PASSWORD (docker-compose.yml:8)
  • MYSQL_DATABASE (docker-compose.yml:9)
  • NOVU_API_KEY (docker-compose.yml:28)
  • NOVU_API_URL (docker-compose.yml:29)
  • WORDPRESS_DB_HOST (docker-compose.yml:30)
  • WORDPRESS_DB_USER (docker-compose.yml:31)
  • WORDPRESS_DB_PASSWORD (docker-compose.yml:32)
  • WORDPRESS_DB_NAME (docker-compose.yml:33)
  • WORDPRESS_DEBUG (docker-compose.yml:34)
  • WORDPRESS_CONFIG_EXTRA (docker-compose.yml:35)
  • API_DELIVERABLE_SUBSCRIPTIONS_URL (docker-compose.yml:44)
  • API_DELIVERABLE_SUBSCRIPTIONS_KEY (docker-compose.yml:45)

Variaveis lidas por getenv_docker em wp-config.php

  • WORDPRESS_DB_NAME (wordpress/wp-config.php:44)
  • WORDPRESS_DB_USER (wordpress/wp-config.php:47)
  • WORDPRESS_DB_PASSWORD (wordpress/wp-config.php:50)
  • WORDPRESS_DB_HOST (wordpress/wp-config.php:59)
  • WORDPRESS_DB_CHARSET (wordpress/wp-config.php:62)
  • WORDPRESS_DB_COLLATE (wordpress/wp-config.php:65)
  • WORDPRESS_AUTH_KEY (wordpress/wp-config.php:78)
  • WORDPRESS_SECURE_AUTH_KEY (wordpress/wp-config.php:79)
  • WORDPRESS_LOGGED_IN_KEY (wordpress/wp-config.php:80)
  • WORDPRESS_NONCE_KEY (wordpress/wp-config.php:81)
  • WORDPRESS_AUTH_SALT (wordpress/wp-config.php:82)
  • WORDPRESS_SECURE_AUTH_SALT (wordpress/wp-config.php:83)
  • WORDPRESS_LOGGED_IN_SALT (wordpress/wp-config.php:84)
  • WORDPRESS_NONCE_SALT (wordpress/wp-config.php:85)
  • WORDPRESS_TABLE_PREFIX (wordpress/wp-config.php:102)
  • WORDPRESS_DEBUG (wordpress/wp-config.php:116)
  • WORDPRESS_CONFIG_EXTRA (wordpress/wp-config.php:135)

Variaveis usadas por scripts/pipeline

  • DOCKER_BUILDKIT (compose-aws-local.sh:3)
  • COMPOSE_DOCKER_CLI_BUILD (compose-aws-local.sh:4)
  • DOCKER_REGISTRY (.github/workflows/ci-cd-pipeline.yml:36)
  • DOCKER_REPOSITORY (.github/workflows/ci-cd-pipeline.yml:47)
  • DOCKER_USERNAME (.github/workflows/ci-cd-pipeline.yml:37)
  • DOCKER_PASSWORD (.github/workflows/ci-cd-pipeline.yml:38)

Comandos para rodar local, testar e buildar

Rodar local

  • docker compose up -d --build
  • docker compose logs -f nginx wordpress mariadb redis
  • docker compose down
  • Evidencia operacional da stack: docker-compose.yml:2

Build

  • docker build -t dhedalos-app-backend-wp:local .
  • Evidencia de build Docker: Dockerfile:1

Build/deploy em CI

  • Build/push da imagem: job build no workflow.
  • Deploy Helm por ambiente (develop, main, development).
  • Evidencia: .github/workflows/ci-cd-pipeline.yml:14
  • Evidencia: .github/workflows/ci-cd-pipeline.yml:75

Testes

  • Nao foi encontrado comando unico de suite automatizada; o arquivo we-dhedalos/functions/3rd/composer.json nao define scripts de teste.
  • Existem endpoints de apoio a QA/fixtures na API:
    • GET /dhedalos/v1/tests
    • POST /dhedalos/v1/tests/fixtures/create
    • DELETE /dhedalos/v1/tests/fixtures/cleanup
  • Evidencia: we-dhedalos/functions/3rd/composer.json:1
  • Evidencia: we-dhedalos/functions/rest/tests.php:40
  • Evidencia: we-dhedalos/functions/rest/tests-fixtures.php:46

Pendencias

  • Confirmar se existe docker-compose-aws.yml fora deste repositorio para suportar compose-aws-local.sh.

    • Evidencia: compose-aws-local.sh:6
  • Confirmar se existem workers/queues externos (fora deste repo) que complementam o processamento assíncrono hoje coberto por WP-Cron.

    • Evidencia de processamento atual no repo: we-dhedalos/functions.php:37