Pular para o conteúdo principal

WE - Dhedalos Backend WordPress

Backend WordPress do portal Dhedalos, com dominio implementado majoritariamente no tema we-dhedalos.

Visao geral do repositorio

  • we-dhedalos/
    • tema WordPress com endpoints REST (dhedalos/v1), regras de negocio, CPTs, jobs e integrações.
  • wordpress/
    • raiz do WordPress usada no ambiente local.
  • docker-compose.yml, Dockerfile, docker/
    • stack local (nginx + wordpress + mariadb + redis).
  • helm/, kubernetes/
    • manifests de deploy em Kubernetes.
  • .github/workflows/ci-cd-pipeline.yml
    • pipeline de build/push/deploy.
  • docs/
    • documentacao tecnica de arquitetura, API, dados, operacao e features.

Iniciando localmente

docker compose up -d --build

Acesse:

  • App: http://localhost
  • API (prefixo customizado): http://localhost/api

Comandos principais

Dev

docker compose up -d --build
docker compose logs -f nginx wordpress mariadb redis
docker compose stop
docker compose start
docker compose down

Build

docker build -t dhedalos-app-backend-wp:local .

Test

Nao existe suite automatizada unica no root (ex.: phpunit configurado no projeto inteiro).

No backend ha endpoints de suporte a QA:

  • we-dhedalos/functions/rest/tests.php
  • we-dhedalos/functions/rest/tests-fixtures.php

Variaveis de ambiente (exemplos)

Banco e debug

WORDPRESS_DB_HOST=mariadb:3306
WORDPRESS_DB_USER=root
WORDPRESS_DB_PASSWORD=<db_password>
WORDPRESS_DB_NAME=wordpress
WORDPRESS_DEBUG=true
WORDPRESS_TABLE_PREFIX=wp_

Runtime WordPress (via WORDPRESS_CONFIG_EXTRA)

WP_HOME=http://localhost
WP_SITEURL=http://localhost
WP_CACHE=true
WP_REDIS_HOST=redis
API_SERVICE_TOKEN=<service_token>
JWT_AUTH_SECRET_KEY=<jwt_secret>
WP_DEBUG_DISPLAY=false

Notificacoes e integrações

NOVU_API_KEY=<novu_api_key>
NOVU_API_URL=https://api.novu.co/v1/events/trigger
API_DELIVERABLE_SUBSCRIPTIONS_URL=https://<host>/api
API_DELIVERABLE_SUBSCRIPTIONS_KEY=<deliverable_api_key>

Observacao Kubernetes

Nos ambientes K8s, o chart usa envSecret: app-backend-wp-envs em arquivos kubernetes/**/values.yaml.

Documentacao

  • Hub de docs: docs/
  • Arquitetura: docs/architecture/c4-component.md
    • Mindmap (Mermaid): docs/architecture/mindmap.md
  • API:
    • docs/api/openapi.yaml
    • docs/api/examples.md
    • docs/api/endpoint-inventory.md
    • docs/api/authentication.md
  • Dados: docs/data/model.md
  • Operacao:
    • docs/operations/runbook.md
    • docs/operations/observability.md
  • Features: docs/features/README.md
  • ADR: docs/adr/0001-architecture-overview.md

Contexto C4 L1

Atores

  • Participante (subscriber)
  • Facilitador (facilitator)
  • Supervisor (supervisor)
  • Administrador (administrator)
  • Servicos internos consumidores da API com token de servico

Aplicacoes externas

  • SimplyBook (agenda/booking)
  • 8x8/Jitsi (salas e token JWT)
  • Novu (notificacoes)
  • API de agenda (campo agenda em ACF options)
  • API de submissions (API_DELIVERABLE_SUBSCRIPTIONS_URL)
  • ViaCEP (importadores)

Dependencias externas

  • Docker / Docker Compose
  • Nginx
  • MariaDB
  • Redis
  • Kubernetes + Helm
  • Docker Registry (parametrizado no workflow)
  • Pendencia: nao foram encontrados links explicitos para outros repositorios da solucao dentro deste repositorio.

Deploy e ambientes

Conforme .github/workflows/ci-cd-pipeline.yml:

  • develop -> piloto-dhedalos-ecosystem (oke-we-002)
  • main -> dhedalos-ecosystem (oke-we-001)
  • main -> essencia-ecosystem (oke-we-001)
  • development -> dev-dhedalos-wp (oke-we-002)

Pendencias

  • A pipeline referencia deploy para dev-dhedalos-wp, mas o arquivo kubernetes/oke-we-002/dev-dhedalos-wp/values.yaml nao foi encontrado no estado atual do repositorio.