Skip to content

Commit db5c7cd

Browse files
Refactor database configuration to use structured types for SQLite Postgres and Redis
1 parent cb21424 commit db5c7cd

File tree

36 files changed

+709
-509
lines changed

36 files changed

+709
-509
lines changed

backend/cmd/server/repository/conf/deployment.yaml

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,30 @@ tls:
1010
database:
1111
config:
1212
type: "sqlite"
13-
path: "repository/database/configdb.db"
14-
options: "_journal_mode=WAL&_busy_timeout=5000&_pragma=foreign_keys(1)"
15-
max_open_conns: 500
16-
max_idle_conns: 100
17-
conn_max_lifetime: 3600
13+
sqlite:
14+
path: "repository/database/configdb.db"
15+
options: "_journal_mode=WAL&_busy_timeout=5000&_pragma=foreign_keys(1)"
16+
max_open_conns: 500
17+
max_idle_conns: 100
18+
conn_max_lifetime: 3600
1819

1920
runtime:
2021
type: "sqlite"
21-
path: "repository/database/runtimedb.db"
22-
options: "_journal_mode=WAL&_busy_timeout=5000&_pragma=foreign_keys(1)"
23-
max_open_conns: 500
24-
max_idle_conns: 100
25-
conn_max_lifetime: 3600
22+
sqlite:
23+
path: "repository/database/runtimedb.db"
24+
options: "_journal_mode=WAL&_busy_timeout=5000&_pragma=foreign_keys(1)"
25+
max_open_conns: 500
26+
max_idle_conns: 100
27+
conn_max_lifetime: 3600
2628

2729
user:
2830
type: "sqlite"
29-
path: "repository/database/userdb.db"
30-
options: "_journal_mode=WAL&_busy_timeout=5000&_pragma=foreign_keys(1)"
31-
max_open_conns: 500
32-
max_idle_conns: 100
33-
conn_max_lifetime: 3600
31+
sqlite:
32+
path: "repository/database/userdb.db"
33+
options: "_journal_mode=WAL&_busy_timeout=5000&_pragma=foreign_keys(1)"
34+
max_open_conns: 500
35+
max_idle_conns: 100
36+
conn_max_lifetime: 3600
3437

3538
crypto:
3639
encryption:

backend/cmd/server/repository/resources/conf/default.json

Lines changed: 28 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -19,48 +19,40 @@
1919
"database": {
2020
"config": {
2121
"type": "sqlite",
22-
"hostname": "",
23-
"port": 0,
24-
"name": "",
25-
"username": "",
26-
"password": "",
27-
"sslmode": "",
28-
"path": "repository/database/configdb.db",
29-
"options": "_journal_mode=WAL&_busy_timeout=5000&_pragma=foreign_keys(1)",
30-
"max_open_conns": 500,
31-
"max_idle_conns": 100,
32-
"conn_max_lifetime": 3600
22+
"sqlite": {
23+
"path": "repository/database/configdb.db",
24+
"options": "_journal_mode=WAL&_busy_timeout=5000&_pragma=foreign_keys(1)",
25+
"max_open_conns": 500,
26+
"max_idle_conns": 100,
27+
"conn_max_lifetime": 3600
28+
}
3329
},
3430
"runtime": {
3531
"type": "sqlite",
36-
"hostname": "",
37-
"port": 0,
38-
"name": "",
39-
"username": "",
40-
"password": "",
41-
"sslmode": "",
42-
"path": "repository/database/runtimedb.db",
43-
"options": "_journal_mode=WAL&_busy_timeout=5000&_pragma=foreign_keys(1)",
44-
"max_open_conns": 500,
45-
"max_idle_conns": 100,
46-
"conn_max_lifetime": 3600,
47-
"address": "",
48-
"db": 0,
49-
"key_prefix": ""
32+
"sqlite": {
33+
"path": "repository/database/runtimedb.db",
34+
"options": "_journal_mode=WAL&_busy_timeout=5000&_pragma=foreign_keys(1)",
35+
"max_open_conns": 500,
36+
"max_idle_conns": 100,
37+
"conn_max_lifetime": 3600
38+
},
39+
"redis": {
40+
"address": "",
41+
"username": "",
42+
"password": "",
43+
"db": 0,
44+
"key_prefix": ""
45+
}
5046
},
5147
"user": {
5248
"type": "sqlite",
53-
"hostname": "",
54-
"port": 0,
55-
"name": "",
56-
"username": "",
57-
"password": "",
58-
"sslmode": "",
59-
"path": "repository/database/userdb.db",
60-
"options": "_journal_mode=WAL&_busy_timeout=5000&_pragma=foreign_keys(1)",
61-
"max_open_conns": 500,
62-
"max_idle_conns": 100,
63-
"conn_max_lifetime": 3600
49+
"sqlite": {
50+
"path": "repository/database/userdb.db",
51+
"options": "_journal_mode=WAL&_busy_timeout=5000&_pragma=foreign_keys(1)",
52+
"max_open_conns": 500,
53+
"max_idle_conns": 100,
54+
"conn_max_lifetime": 3600
55+
}
6456
}
6557
},
6658
"cache": {

backend/internal/application/init_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,8 @@ import (
4848
// process share the same SQLite instance instead of creating separate databases.
4949
func newInMemoryDataSource() config.DataSource {
5050
return config.DataSource{
51-
Type: "sqlite",
52-
Path: "file::memory:?cache=shared",
53-
MaxOpenConns: 1,
54-
MaxIdleConns: 1,
51+
Type: "sqlite",
52+
SQLite: config.SQLiteDataSource{Path: "file::memory:?cache=shared", MaxOpenConns: 1, MaxIdleConns: 1},
5553
}
5654
}
5755

backend/internal/entityprovider/init_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,12 @@ func (suite *InitEntityProviderTestSuite) SetupTest() {
3838
testConfig := &config.Config{
3939
Database: config.DatabaseConfig{
4040
Config: config.DataSource{
41-
Type: "sqlite",
42-
Path: ":memory:",
41+
Type: "sqlite",
42+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
4343
},
4444
Runtime: config.DataSource{
45-
Type: "sqlite",
46-
Path: ":memory:",
45+
Type: "sqlite",
46+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
4747
},
4848
},
4949
}

backend/internal/flow/mgt/init_test.go

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,12 @@ func (s *InitTestSuite) SetupTest() {
6363
testConfig := &config.Config{
6464
Database: config.DatabaseConfig{
6565
Config: config.DataSource{
66-
Type: "sqlite",
67-
Path: ":memory:",
66+
Type: "sqlite",
67+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
6868
},
6969
Runtime: config.DataSource{
70-
Type: "sqlite",
71-
Path: ":memory:",
70+
Type: "sqlite",
71+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
7272
},
7373
},
7474
Server: config.ServerConfig{
@@ -726,12 +726,12 @@ func (s *InitTestSuite) TestInitializeStore_MutableMode() {
726726
},
727727
Database: config.DatabaseConfig{
728728
Config: config.DataSource{
729-
Type: "sqlite",
730-
Path: ":memory:",
729+
Type: "sqlite",
730+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
731731
},
732732
Runtime: config.DataSource{
733-
Type: "sqlite",
734-
Path: ":memory:",
733+
Type: "sqlite",
734+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
735735
},
736736
},
737737
Server: config.ServerConfig{
@@ -763,12 +763,12 @@ func (s *InitTestSuite) TestInitializeStore_DeclarativeMode() {
763763
},
764764
Database: config.DatabaseConfig{
765765
Config: config.DataSource{
766-
Type: "sqlite",
767-
Path: ":memory:",
766+
Type: "sqlite",
767+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
768768
},
769769
Runtime: config.DataSource{
770-
Type: "sqlite",
771-
Path: ":memory:",
770+
Type: "sqlite",
771+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
772772
},
773773
},
774774
Server: config.ServerConfig{
@@ -802,12 +802,12 @@ func (s *InitTestSuite) TestInitializeStore_CompositeMode() {
802802
},
803803
Database: config.DatabaseConfig{
804804
Config: config.DataSource{
805-
Type: "sqlite",
806-
Path: ":memory:",
805+
Type: "sqlite",
806+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
807807
},
808808
Runtime: config.DataSource{
809-
Type: "sqlite",
810-
Path: ":memory:",
809+
Type: "sqlite",
810+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
811811
},
812812
},
813813
Server: config.ServerConfig{
@@ -846,12 +846,12 @@ func (s *InitTestSuite) TestInitializeStore_DeclarativeMode_ResourceLoadingError
846846
},
847847
Database: config.DatabaseConfig{
848848
Config: config.DataSource{
849-
Type: "sqlite",
850-
Path: ":memory:",
849+
Type: "sqlite",
850+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
851851
},
852852
Runtime: config.DataSource{
853-
Type: "sqlite",
854-
Path: ":memory:",
853+
Type: "sqlite",
854+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
855855
},
856856
},
857857
Server: config.ServerConfig{
@@ -887,12 +887,12 @@ func (s *InitTestSuite) TestInitializeStore_CompositeMode_ResourceLoadingError()
887887
},
888888
Database: config.DatabaseConfig{
889889
Config: config.DataSource{
890-
Type: "sqlite",
891-
Path: ":memory:",
890+
Type: "sqlite",
891+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
892892
},
893893
Runtime: config.DataSource{
894-
Type: "sqlite",
895-
Path: ":memory:",
894+
Type: "sqlite",
895+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
896896
},
897897
},
898898
Server: config.ServerConfig{
@@ -931,12 +931,12 @@ func (s *InitTestSuite) TestInitializeStore_DefaultMode() {
931931
},
932932
Database: config.DatabaseConfig{
933933
Config: config.DataSource{
934-
Type: "sqlite",
935-
Path: ":memory:",
934+
Type: "sqlite",
935+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
936936
},
937937
Runtime: config.DataSource{
938-
Type: "sqlite",
939-
Path: ":memory:",
938+
Type: "sqlite",
939+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
940940
},
941941
},
942942
Server: config.ServerConfig{
@@ -971,12 +971,12 @@ func (s *InitTestSuite) TestInitializeStore_ModeNormalization() {
971971
},
972972
Database: config.DatabaseConfig{
973973
Config: config.DataSource{
974-
Type: "sqlite",
975-
Path: ":memory:",
974+
Type: "sqlite",
975+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
976976
},
977977
Runtime: config.DataSource{
978-
Type: "sqlite",
979-
Path: ":memory:",
978+
Type: "sqlite",
979+
SQLite: config.SQLiteDataSource{Path: ":memory:"},
980980
},
981981
},
982982
Server: config.ServerConfig{

0 commit comments

Comments
 (0)