Skip to content

Architecture Decision Records (ADRs)

Summary of architecture decisions guiding the middag-io organization's operations.

ADRTitleContextDecisionStatus
001Naming ConventionGitHub lacks Bitbucket's project-level grouping for repositories.Mandatory category prefixes per family (moodle-*, wp-plugin-*, docker-*, etc).Accepted
002Branch ModelBitbucket repos used mixed branch models without standardization.main (production) + develop (integration) + feature/* + hotfix/*, with release-please.Accepted
003Release StrategyVersioning and changelogs need automation with support for different audiences.release-please with Conventional Commits; commercial products maintain a separate CHANGELOG-USER.md.Accepted
004Migration Strategy~75 active Bitbucket repos need gradual migration to GitHub.Immediate cutover per repo, no dual-remote; Bitbucket becomes read-only after migration.Accepted
0051Password + GitHub ActionsCI/CD needs secure secrets access without long-lived PATs.Hybrid model: Service Accounts per project in CI; 1Password Connect in production.Accepted
006Reusable WorkflowsPipeline duplication across repos causes drift and excessive maintenance.Centralize reusable workflows; consuming repos use thin wrappers with config inputs.Accepted
007Docker RegistryDocker images need a registry for CI and deploys; current setup uses dual-push to GHCR + ECR.GHCR as default; ECR optional via PUSH_TO_ECR variable, copied with crane copy.Accepted
008CI Base ImageBitbucket required a custom Docker image; GitHub Actions provides native tooling.No custom image; use GitHub Actions native setup with shivammathur/setup-php.Accepted
009AI Agent PolicyAI agents generate local state that can pollute repos and cause dev conflicts.Don't version local agent state; mandatory gitignore; document required tools.Accepted
0101Password NamingSecrets for CI, servers, and local dev need consistent naming and access control.Vaults CI-{PROJECT}, items {SERVICE}-{context}, fields snake_case EN; 3 consumption patterns.Accepted
011Docker + Dev ContainerDocker projects need standardized setup for Dev Containers, CI, and production.Multi-stage Dockerfile, base+override compose, toggleable Xdebug, secrets via 1Password.Accepted

MIDDAG Tecnologia