Skip to content

Commit b3c6dc5

Browse files
Merge pull request #299 from Smithsonian/forestgeo-app-development
Forestgeo app development
2 parents d045c33 + 94fdac5 commit b3c6dc5

320 files changed

Lines changed: 16119 additions & 8724 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

LOCAL_DB_SETUP.md

Lines changed: 176 additions & 0 deletions

backend/polluserinformation/.vscode/extensions.json

Lines changed: 0 additions & 6 deletions
This file was deleted.

backend/polluserinformation/.vscode/launch.json

Lines changed: 0 additions & 15 deletions
This file was deleted.

backend/polluserinformation/.vscode/settings.json

Lines changed: 0 additions & 9 deletions
This file was deleted.

backend/polluserinformation/.vscode/tasks.json

Lines changed: 0 additions & 27 deletions
This file was deleted.

docker-compose.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
services:
2+
mysql:
3+
image: mysql:8.0.36
4+
container_name: forestgeo-mysql-local
5+
restart: unless-stopped
6+
environment:
7+
# Root password for test setup (local-db-setup.ts uses root by default)
8+
MYSQL_ROOT_PASSWORD: ${TEST_DB_PASSWORD:-testpassword}
9+
# Allow empty password for easier local testing (optional)
10+
MYSQL_ALLOW_EMPTY_PASSWORD: "no"
11+
# Create a default database (tests create their own isolated DBs)
12+
MYSQL_DATABASE: forestgeo_local
13+
ports:
14+
- "${TEST_DB_PORT:-3306}:3306"
15+
volumes:
16+
# Persist data between container restarts
17+
- mysql_data:/var/lib/mysql
18+
# Mount SQL scripts for reference (not auto-executed; local-db-setup.ts loads them)
19+
- ./frontend/sqlscripting:/sqlscripting:ro
20+
- ./frontend/db-migrations:/migrations:ro
21+
command:
22+
- --character-set-server=utf8mb4
23+
- --collation-server=utf8mb4_0900_ai_ci
24+
# Use mysql_native_password for compatibility
25+
- --default-authentication-plugin=mysql_native_password
26+
# Increase GROUP_CONCAT limit for stored procedures (default 1024 is too small)
27+
- --group_concat_max_len=1048576
28+
# Performance settings for testing
29+
- --max_connections=200
30+
- --innodb_buffer_pool_size=256M
31+
healthcheck:
32+
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${TEST_DB_PASSWORD:-testpassword}"]
33+
interval: 10s
34+
timeout: 5s
35+
retries: 5
36+
start_period: 30s
37+
38+
# Optional: Run integration tests in a container
39+
test-runner:
40+
image: node:20-slim
41+
container_name: forestgeo-test-runner
42+
working_dir: /app
43+
depends_on:
44+
mysql:
45+
condition: service_healthy
46+
environment:
47+
TEST_DB_HOST: mysql
48+
TEST_DB_PORT: 3306
49+
TEST_DB_USER: root
50+
TEST_DB_PASSWORD: ${TEST_DB_PASSWORD:-testpassword}
51+
volumes:
52+
- ./frontend:/app
53+
- /app/node_modules
54+
command: ["npm", "run", "test:integration"]
55+
profiles:
56+
- test
57+
58+
volumes:
59+
mysql_data:
60+
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)