Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions images/src/backend/.devcontainer/devcontainer-lock.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"features": {
"ghcr.io/lifadev/devcontainers/features/aws2": {
"version": "2026.1.23",
"resolved": "ghcr.io/lifadev/devcontainers/features/aws2@sha256:1038400f730d812e91b97b70727e1ed56a562288f0c5f9c4c0a20ee528c8dea8",
"integrity": "sha256:1038400f730d812e91b97b70727e1ed56a562288f0c5f9c4c0a20ee528c8dea8"
},
"ghcr.io/lifadev/devcontainers/features/base": {
"version": "2025.4.12",
"resolved": "ghcr.io/lifadev/devcontainers/features/base@sha256:d083d0f6d166afaebcb771e9adfa8f957bf27f3449a383fc2655aded11de9846",
Expand All @@ -10,30 +15,25 @@
"resolved": "ghcr.io/lifadev/devcontainers/features/bash@sha256:ad1a99a16c4b41daaf289d4e6fba1db418d34bbc609735c0ef91c7fa95576f46",
"integrity": "sha256:ad1a99a16c4b41daaf289d4e6fba1db418d34bbc609735c0ef91c7fa95576f46"
},
"ghcr.io/lifadev/devcontainers/features/developer": {
"version": "2026.1.22",
"resolved": "ghcr.io/lifadev/devcontainers/features/developer@sha256:ee97423622b3931d1ef48e5ed54d2b4cd3c3dc07cc6a3462e13acdf9466b9fcd",
"integrity": "sha256:ee97423622b3931d1ef48e5ed54d2b4cd3c3dc07cc6a3462e13acdf9466b9fcd"
},
"ghcr.io/lifadev/devcontainers/features/starship": {
"version": "2025.12.30",
"resolved": "ghcr.io/lifadev/devcontainers/features/starship@sha256:42b087359e4118f75f2d7399bdc7e5866d8db0a4f14e82bd67f93e43d6536b81",
"integrity": "sha256:42b087359e4118f75f2d7399bdc7e5866d8db0a4f14e82bd67f93e43d6536b81"
},
"ghcr.io/lifadev/devcontainers/features/cdk": {
"version": "2026.1.25",
"resolved": "ghcr.io/lifadev/devcontainers/features/cdk@sha256:5c080c866b4223277a8857ec5de3829bedf3b3e18583ae8b5df5bb68312f90eb",
"integrity": "sha256:5c080c866b4223277a8857ec5de3829bedf3b3e18583ae8b5df5bb68312f90eb"
},
"ghcr.io/lifadev/devcontainers/features/developer": {
"version": "2026.1.22",
"resolved": "ghcr.io/lifadev/devcontainers/features/developer@sha256:ee97423622b3931d1ef48e5ed54d2b4cd3c3dc07cc6a3462e13acdf9466b9fcd",
"integrity": "sha256:ee97423622b3931d1ef48e5ed54d2b4cd3c3dc07cc6a3462e13acdf9466b9fcd"
},
"ghcr.io/lifadev/devcontainers/features/node24": {
"version": "2026.1.22",
"resolved": "ghcr.io/lifadev/devcontainers/features/node24@sha256:354a0a005634a32a187a39c34be33f60f644bf8576f80fd8471d6d3e363747c7",
"integrity": "sha256:354a0a005634a32a187a39c34be33f60f644bf8576f80fd8471d6d3e363747c7"
},
"ghcr.io/lifadev/devcontainers/features/aws2": {
"version": "2026.1.23",
"resolved": "ghcr.io/lifadev/devcontainers/features/aws2@sha256:1038400f730d812e91b97b70727e1ed56a562288f0c5f9c4c0a20ee528c8dea8",
"integrity": "sha256:1038400f730d812e91b97b70727e1ed56a562288f0c5f9c4c0a20ee528c8dea8"
"ghcr.io/lifadev/devcontainers/features/starship": {
"version": "2025.12.30",
"resolved": "ghcr.io/lifadev/devcontainers/features/starship@sha256:42b087359e4118f75f2d7399bdc7e5866d8db0a4f14e82bd67f93e43d6536b81",
"integrity": "sha256:42b087359e4118f75f2d7399bdc7e5866d8db0a4f14e82bd67f93e43d6536b81"
},
"ghcr.io/wemaintain/devcontainers/features/cdktf": {
"version": "2025.6.7",
Expand Down
7 changes: 4 additions & 3 deletions images/src/backend/.devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,19 @@
"ghcr.io/lifadev/devcontainers/features/starship": {},
"ghcr.io/wemaintain/devcontainers/features/cdktf": {},
"ghcr.io/wemaintain/devcontainers/features/nx": {},
"ghcr.io/wemaintain/devcontainers/features/terraform": {}
"ghcr.io/wemaintain/devcontainers/features/terraform": {},
"./features/postgres-rds": {}
},
"remoteUser": "developer",
"updateRemoteUserUID": true,
"remoteEnv": {
"PATH": "/opt/bin:${containerEnv:PATH}"
},
"postCreateCommand": "sudo env PATH=$PATH CI=true corepack enable && mkdir -p ~/.aws && wget -q https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem -O ~/.aws/rds-ca-cert.pem && printf \"alias withPg='DB_HOST=wemaintain-pgsql-staging.cdtgkxemrw9j.eu-west-1.rds.amazonaws.com DB_USER=backend_dev DB_PASSWORD=\\$(aws rds --profile prod:back generate-db-auth-token --hostname wemaintain-pgsql-staging.cdtgkxemrw9j.eu-west-1.rds.amazonaws.com --port 5432 --region eu-west-1 --username backend_dev) DB_SSL_CA=\\$HOME/.aws/rds-ca-cert.pem'\\n\" > ~/.bash_aliases",
"postCreateCommand": "sudo env PATH=$PATH CI=true corepack enable",
"customizations": {
"manifest": {
"name": "backend",
"version": "2026.1.264"
"version": "2026.1.265"
},
"vscode": {
"settings": {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
alias withPg='DB_HOST=wemaintain-pgsql-staging.cdtgkxemrw9j.eu-west-1.rds.amazonaws.com DB_USER=backend_dev DB_PASSWORD=$(aws rds --profile prod:back generate-db-auth-token --hostname wemaintain-pgsql-staging.cdtgkxemrw9j.eu-west-1.rds.amazonaws.com --port 5432 --region eu-west-1 --username backend_dev) DB_SSL_CA=/usr/local/share/aws/rds-ca-cert.pem'
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"id": "postgres-rds",
"version": "1.0.0",
"name": "PostgreSQL RDS Setup",
"description": "Sets up SSL certificate and aliases for RDS connections",
"options": {}
}
35 changes: 35 additions & 0 deletions images/src/backend/.devcontainer/features/postgres-rds/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/usr/bin/env bash
set -e

check_packages() {
if ! dpkg -s "$@" >/dev/null 2>&1; then
if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then
apt-get update
fi
apt-get -y install --no-install-recommends "$@"
fi
}

# Install dependencies if missing
check_packages wget ca-certificates

# Download cert
mkdir -p /usr/local/share/aws
echo "Downloading AWS RDS CA certificate..."
wget -q https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem -O /usr/local/share/aws/rds-ca-cert.pem
chmod 644 /usr/local/share/aws/rds-ca-cert.pem

# Add alias to /etc/skel so new users get it
echo "Adding alias to /etc/skel/.bash_aliases"
mkdir -p /etc/skel
cat .bash_aliases >>/etc/skel/.bash_aliases

# If the user 'developer' already exists (e.g. from base image), update it.
# Otherwise, relying on /etc/skel is sufficient for when the user is created later.
if id -u developer >/dev/null 2>&1; then
echo "User 'developer' exists, updating their .bash_aliases"
USER_HOME=$(getent passwd developer | cut -d: -f6)
mkdir -p "$USER_HOME"
cat .bash_aliases >>"$USER_HOME/.bash_aliases"
chown developer:developer "$USER_HOME/.bash_aliases"
fi