Skip to content

Commit 862bbb9

Browse files
authored
Improves the SDK integration Tests (#501)
* Updates integration test setup to BaSyx Go components * Adds missing endpoints for the v3.1 profiles (excluding superpathes) * Updates to AAS v3.1.1 * Adds missing integration tests * Updates integration tests * Updates the attachment endpoint tests * Fixes linting issue * Skips failing tests for now * Removes temparary notes
1 parent ce48174 commit 862bbb9

51 files changed

Lines changed: 8004 additions & 10621 deletions

Some content is hidden

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

ci/basyxschema.sql

Lines changed: 659 additions & 0 deletions
Large diffs are not rendered by default.

ci/docker-compose.yml

Lines changed: 142 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,163 @@
11
services:
22
# AAS Repository
33
aas-repository:
4-
image: eclipsebasyx/aas-repository:2.0.0-milestone-05
4+
image: eclipsebasyx/aasrepository-go:SNAPSHOT
55
container_name: aas-repository
66
ports:
77
- '8081:8081'
88
environment:
99
# Service Configuration
10-
SERVER_PORT: 8081
11-
BASYX_BACKEND: "InMemory"
12-
BASYX_CORS_ALLOWED_ORIGINS: "*"
13-
BASYX_CORS_ALLOWED_METHODS: "GET, POST, PATCH, DELETE, PUT, OPTIONS, HEAD"
10+
- SERVER_PORT=8081
11+
- CORS_ALLOWEDORIGINS=*
12+
- CORS_ALLOWEDHEADERS=*
13+
- CORS_ALLOWEDCREDENTIALS=true
14+
- CORS_ALLOWEDMETHODS=GET,POST,PUT,PATCH,DELETE,OPTIONS
15+
- POSTGRES_HOST=db
16+
- POSTGRES_PORT=5432
17+
- POSTGRES_USER=admin
18+
- POSTGRES_PASSWORD=admin123
19+
- POSTGRES_DBNAME=basyxTestDB
20+
- POSTGRES_MAXOPENCONNECTIONS=500
21+
- POSTGRES_MAXIDLECONNECTIONS=500
22+
- POSTGRES_CONNMAXLIFETIMEMINUTES=5
23+
- ABAC_ENABLED=false
24+
depends_on:
25+
db-schema-init:
26+
condition: service_completed_successfully
1427

1528
# Submodel Repository
1629
submodel-repository:
17-
image: eclipsebasyx/submodel-repository:2.0.0-milestone-05
30+
image: eclipsebasyx/submodelrepository-go:SNAPSHOT
1831
container_name: submodel-repository
1932
ports:
2033
- '8082:8081'
2134
environment:
2235
# Service Configuration
23-
SERVER_PORT: 8081
24-
BASYX_BACKEND: "InMemory"
25-
BASYX_CORS_ALLOWED_ORIGINS: "*"
26-
BASYX_CORS_ALLOWED_METHODS: "GET, POST, PATCH, DELETE, PUT, OPTIONS, HEAD"
36+
- SERVER_PORT=8081
37+
- CORS_ALLOWEDORIGINS=*
38+
- CORS_ALLOWEDHEADERS=*
39+
- CORS_ALLOWEDCREDENTIALS=true
40+
- CORS_ALLOWEDMETHODS=GET,POST,PUT,PATCH,DELETE,OPTIONS
41+
- POSTGRES_HOST=db
42+
- POSTGRES_PORT=5432
43+
- POSTGRES_USER=admin
44+
- POSTGRES_PASSWORD=admin123
45+
- POSTGRES_DBNAME=basyxTestDB
46+
- POSTGRES_MAXOPENCONNECTIONS=500
47+
- POSTGRES_MAXIDLECONNECTIONS=500
48+
- POSTGRES_CONNMAXLIFETIMEMINUTES=5
49+
- ABAC_ENABLED=false
50+
depends_on:
51+
db-schema-init:
52+
condition: service_completed_successfully
2753

2854
# Concept Description Repository
2955
cd-repository:
30-
image: eclipsebasyx/conceptdescription-repository:2.0.0-milestone-05
56+
image: eclipsebasyx/conceptdescriptionrepository-go:SNAPSHOT
3157
container_name: cd-repository
3258
ports:
3359
- '8083:8081'
3460
environment:
3561
# Service Configuration
36-
SERVER_PORT: 8081
37-
BASYX_BACKEND: "InMemory"
38-
BASYX_CORS_ALLOWED_ORIGINS: "*"
39-
BASYX_CORS_ALLOWED_METHODS: "GET, POST, PATCH, DELETE, PUT, OPTIONS, HEAD"
62+
- SERVER_PORT=8081
63+
- CORS_ALLOWEDORIGINS=*
64+
- CORS_ALLOWEDHEADERS=*
65+
- CORS_ALLOWEDCREDENTIALS=true
66+
- CORS_ALLOWEDMETHODS=GET,POST,PUT,PATCH,DELETE,OPTIONS
67+
- POSTGRES_HOST=db
68+
- POSTGRES_PORT=5432
69+
- POSTGRES_USER=admin
70+
- POSTGRES_PASSWORD=admin123
71+
- POSTGRES_DBNAME=basyxTestDB
72+
- POSTGRES_MAXOPENCONNECTIONS=500
73+
- POSTGRES_MAXIDLECONNECTIONS=500
74+
- POSTGRES_CONNMAXLIFETIMEMINUTES=5
75+
- ABAC_ENABLED=false
76+
depends_on:
77+
db-schema-init:
78+
condition: service_completed_successfully
4079

4180
# AAS Registry
4281
aas-registry:
43-
image: eclipsebasyx/aas-registry-log-mem:2.0.0-milestone-05
82+
image: eclipsebasyx/aasregistry-go:SNAPSHOT
4483
container_name: aas-registry
4584
ports:
4685
- '8084:8080'
4786
environment:
4887
# Service Configuration
49-
SERVER_PORT: 8080
50-
BASYX_CORS_ALLOWED_ORIGINS: "*"
51-
BASYX_CORS_ALLOWED_METHODS: "GET, POST, PATCH, DELETE, PUT, OPTIONS, HEAD"
88+
- SERVER_PORT=8080
89+
- CORS_ALLOWEDORIGINS=*
90+
- CORS_ALLOWEDHEADERS=*
91+
- CORS_ALLOWEDCREDENTIALS=true
92+
- CORS_ALLOWEDMETHODS=GET,POST,PUT,PATCH,DELETE,OPTIONS
93+
- POSTGRES_HOST=db
94+
- POSTGRES_PORT=5432
95+
- POSTGRES_USER=admin
96+
- POSTGRES_PASSWORD=admin123
97+
- POSTGRES_DBNAME=basyxTestDB
98+
- POSTGRES_MAXOPENCONNECTIONS=500
99+
- POSTGRES_MAXIDLECONNECTIONS=500
100+
- POSTGRES_CONNMAXLIFETIMEMINUTES=5
101+
- ABAC_ENABLED=false
102+
depends_on:
103+
db-schema-init:
104+
condition: service_completed_successfully
52105

53106
# Submodel Registry
54107
sm-registry:
55-
image: eclipsebasyx/submodel-registry-log-mem:2.0.0-milestone-05
108+
image: eclipsebasyx/submodelregistry-go:SNAPSHOT
56109
container_name: sm-registry
57110
ports:
58111
- '8085:8080'
59112
environment:
60113
# Service Configuration
61-
SERVER_PORT: 8080
62-
BASYX_CORS_ALLOWED_ORIGINS: "*"
63-
BASYX_CORS_ALLOWED_METHODS: "GET, POST, PATCH, DELETE, PUT, OPTIONS, HEAD"
114+
- SERVER_PORT=8080
115+
- CORS_ALLOWEDORIGINS=*
116+
- CORS_ALLOWEDHEADERS=*
117+
- CORS_ALLOWEDCREDENTIALS=true
118+
- CORS_ALLOWEDMETHODS=GET,POST,PUT,PATCH,DELETE,OPTIONS
119+
- POSTGRES_HOST=db
120+
- POSTGRES_PORT=5432
121+
- POSTGRES_USER=admin
122+
- POSTGRES_PASSWORD=admin123
123+
- POSTGRES_DBNAME=basyxTestDB
124+
- POSTGRES_MAXOPENCONNECTIONS=500
125+
- POSTGRES_MAXIDLECONNECTIONS=500
126+
- POSTGRES_CONNMAXLIFETIMEMINUTES=5
127+
- ABAC_ENABLED=false
128+
depends_on:
129+
db-schema-init:
130+
condition: service_completed_successfully
64131

65132
# AAS Discovery
66133
aas-discovery:
67-
image: eclipsebasyx/aas-discovery:2.0.0-milestone-05
134+
image: eclipsebasyx/aasdiscovery-go:SNAPSHOT
68135
container_name: aas-discovery
69136
ports:
70137
- '8086:8081'
71138
environment:
72139
# Service Configuration
73-
SERVER_PORT: 8081
74-
BASYX_BACKEND: "InMemory"
75-
BASYX_CORS_ALLOWED_ORIGINS: "*"
76-
BASYX_CORS_ALLOWED_METHODS: "GET, POST, PATCH, DELETE, PUT, OPTIONS, HEAD"
140+
- SERVER_PORT=8081
141+
- CORS_ALLOWEDORIGINS=*
142+
- CORS_ALLOWEDHEADERS=*
143+
- CORS_ALLOWEDCREDENTIALS=true
144+
- CORS_ALLOWEDMETHODS=GET,POST,PUT,PATCH,DELETE,OPTIONS
145+
- POSTGRES_HOST=db
146+
- POSTGRES_PORT=5432
147+
- POSTGRES_USER=admin
148+
- POSTGRES_PASSWORD=admin123
149+
- POSTGRES_DBNAME=basyxTestDB
150+
- POSTGRES_MAXOPENCONNECTIONS=500
151+
- POSTGRES_MAXIDLECONNECTIONS=500
152+
- POSTGRES_CONNMAXLIFETIMEMINUTES=5
153+
- ABAC_ENABLED=false
154+
depends_on:
155+
db-schema-init:
156+
condition: service_completed_successfully
77157

78158
# AASX File Server
79159
aasx-file-server:
80-
image: eclipsebasyx/aasxfileserver:2.0.0-milestone-05
160+
image: eclipsebasyx/aasxfileserver:2.0.0-milestone-08
81161
container_name: aasx-file-server
82162
ports:
83163
- '8087:8081'
@@ -87,3 +167,36 @@ services:
87167
BASYX_BACKEND: "InMemory"
88168
BASYX_CORS_ALLOWED_ORIGINS: "*"
89169
BASYX_CORS_ALLOWED_METHODS: "GET, POST, PATCH, DELETE, PUT, OPTIONS, HEAD"
170+
171+
# PostgreSQL database
172+
db:
173+
container_name: postgres_db
174+
image: postgres:18
175+
environment:
176+
POSTGRES_USER: admin
177+
POSTGRES_PASSWORD: admin123
178+
POSTGRES_DB: basyxTestDB
179+
command: ["postgres", "-c", "listen_addresses=*"]
180+
healthcheck:
181+
test: ["CMD-SHELL", "pg_isready -U admin -d basyxTestDB"]
182+
interval: 10s
183+
timeout: 5s
184+
retries: 5
185+
186+
# Database Schema Initialization
187+
db-schema-init:
188+
image: postgres:18
189+
container_name: db-schema-init
190+
environment:
191+
POSTGRES_HOST: db
192+
POSTGRES_PORT: 5432
193+
POSTGRES_USER: admin
194+
POSTGRES_PASSWORD: admin123
195+
POSTGRES_DB: basyxTestDB
196+
command: ["sh", "/init/init-schema.sh"]
197+
volumes:
198+
- ./basyxschema.sql:/schema/basyxschema.sql:ro
199+
- ./init-schema.sh:/init/init-schema.sh:ro
200+
depends_on:
201+
db:
202+
condition: service_healthy

ci/init-schema.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/bin/sh
2+
set -eu
3+
4+
echo "[db-init] waiting for postgres at ${POSTGRES_HOST}:${POSTGRES_PORT}..."
5+
until pg_isready -h "${POSTGRES_HOST}" -p "${POSTGRES_PORT}" -U "${POSTGRES_USER}" -d "${POSTGRES_DB}" >/dev/null 2>&1; do
6+
sleep 2
7+
done
8+
9+
echo "[db-init] postgres is ready, applying schema..."
10+
export PGPASSWORD="${POSTGRES_PASSWORD}"
11+
psql "host=${POSTGRES_HOST} port=${POSTGRES_PORT} user=${POSTGRES_USER} dbname=${POSTGRES_DB} sslmode=disable" \
12+
-v ON_ERROR_STOP=1 \
13+
-f /schema/basyxschema.sql
14+
15+
echo "[db-init] schema initialization completed."

0 commit comments

Comments
 (0)