Skip to content

Commit a23bb93

Browse files
authored
#482 Add TruthSet (#486)
* #482 Savepoint * #482 Somewhat working * #482 Improved logging * #482 Prepare for versioned release * #482 Prepare for versioned release * #482 Fix review issues * #482 Fix Claud Code Review issues * #482 Fix Linting * #482 Fix Claude code review issues * #482 Fix Claude code review issues * #482 Fix Claude code review issues * #482 Fix Claude code review issues * #482 Fix Claude code review issues * #482 Fix Claude code review issues * #482 Fix Claude code review issues
1 parent 82d1ea5 commit a23bb93

23 files changed

Lines changed: 1109 additions & 51 deletions

.github/linters/.golangci.yaml

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ linters:
125125
- examples$
126126
settings:
127127
cyclop:
128-
max-complexity: 20
128+
max-complexity: 25
129129
depguard:
130130
rules:
131131
prevent_unmaintained_packages:
@@ -138,13 +138,17 @@ linters:
138138
exhaustruct:
139139
exclude:
140140
- '.+/cobra\.Command$'
141+
- '.+/http\.Client$'
141142
- '.+/initializer\.BasicInitializer$'
142143
- '.+/senzingconfig\.BasicSenzingConfig$'
144+
- '.+/senzingload\.BasicSenzingLoad$'
143145
- '.+/senzingschema\.BasicSenzingSchema$'
144146
- '.+/subject\.SimpleSubject$'
145147
funlen:
146-
lines: 140
147-
statements: 75
148+
lines: 150
149+
statements: 80
150+
gocognit:
151+
min-complexity: 40
148152
ireturn:
149153
allow:
150154
- anon
@@ -154,6 +158,7 @@ linters:
154158
- observer.Observer
155159
- senzing.SzAbstractFactory
156160
- senzingconfig.SenzingConfig
161+
- senzingload.SenzingLoad
157162
- senzingschema.SenzingSchema
158163
- settingsparser.SettingsParser
159164
- stdlib
@@ -165,8 +170,17 @@ linters:
165170
- '^notifier\.Notify$'
166171
- '^senzingConfig\.log$'
167172
- '^senzingConfig\.traceEntry$'
173+
- '^senzingLoad\.log$'
174+
- '^senzingLoad\.traceEntry$'
168175
- '^senzingSchema\.log$'
169176
- '^senzingSchema\.traceEntry$'
177+
tagliatelle:
178+
case:
179+
rules:
180+
json: camel
181+
overrides:
182+
- pkg: senzingload
183+
ignore: true
170184
formatters:
171185
enable:
172186
- gci

.vscode/cspell.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,4 +129,4 @@
129129
"rootfs/opt/senzing/*",
130130
"Makefile"
131131
]
132-
}
132+
}

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ and this project adheres to [Semantic Versioning].
99

1010
-
1111

12+
## [0.8.0] - 2025-11-18
13+
14+
### Added in 0.8.0
15+
16+
- Option to load Senzing TruthSet
17+
1218
## [0.7.22] - 2025-11-14
1319

1420
### Changed in 0.7.22

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ This usage shows how to initialize a database with a Docker container.
123123
- **[SENZING_TOOLS_ENGINE_LOG_LEVEL]**
124124
- **[SENZING_TOOLS_ENGINE_MODULE_NAME]**
125125
- **[SENZING_TOOLS_LICENSE_STRING_BASE64]**
126+
- **[SENZING_TOOLS_LOAD_TRUTHSET]**
126127
- **[SENZING_TOOLS_LOG_LEVEL]**
127128
- **[SENZING_TOOLS_OBSERVER_ORIGIN]**
128129
- **[SENZING_TOOLS_OBSERVER_URL]**
@@ -171,6 +172,7 @@ This usage shows how to initialize a database with a Docker container.
171172
[SENZING_TOOLS_ENGINE_LOG_LEVEL]: https://github.com/senzing-garage/knowledge-base/blob/main/lists/environment-variables.md#senzing_tools_engine_log_level
172173
[SENZING_TOOLS_ENGINE_MODULE_NAME]: https://github.com/senzing-garage/knowledge-base/blob/main/lists/environment-variables.md#senzing_tools_engine_module_name
173174
[SENZING_TOOLS_LICENSE_STRING_BASE64]: https://github.com/senzing-garage/knowledge-base/blob/main/lists/environment-variables.md#senzing_tools_license_string_base64
175+
[SENZING_TOOLS_LOAD_TRUTHSET]: https://github.com/senzing-garage/knowledge-base/blob/main/lists/environment-variables.md#senzing_tools_load_truthset
174176
[SENZING_TOOLS_LOG_LEVEL]: https://github.com/senzing-garage/knowledge-base/blob/main/lists/environment-variables.md#senzing_tools_log_level
175177
[SENZING_TOOLS_OBSERVER_ORIGIN]: https://github.com/senzing-garage/knowledge-base/blob/main/lists/environment-variables.md#senzing_tools_observer_origin
176178
[SENZING_TOOLS_OBSERVER_URL]: https://github.com/senzing-garage/knowledge-base/blob/main/lists/environment-variables.md#senzing_tools_observer_url

bearer.ignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"f4081e29dc5e581b17a720a892f4cdc7_0": {
3+
"author": "docktermj",
4+
"false_positive": false,
5+
"ignored_at": "2025-11-18T21:57:43Z"
6+
}
7+
}

cmd/github.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
package cmd
66

77
var (
8-
githubDate = "2025-11-14"
8+
githubDate = "2025-11-18"
99
githubIteration = "0"
10-
githubRef = "refs/tags/0.7.23"
11-
githubRefName = "0.7.23"
10+
githubRef = "refs/tags/0.8.0"
11+
githubRefName = "0.8.0"
1212
githubRepository = "senzing-garage/init-database"
1313
githubRepositoryName = "init-database"
14-
githubVersion = "0.7.23"
14+
githubVersion = "0.8.0"
1515
)

cmd/root.go

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,9 @@ import (
2323

2424
const (
2525
envarEngineConfigurationFile = "SENZING_TOOLS_ENGINE_CONFIGURATION_FILE"
26-
envarSQLFile string = "SENZING_TOOLS_SQL_FILE"
2726
envarInstallSenzingErConfiguration string = "SENZING_TOOLS_INSTALL_SENZING_ER_CONFIGURATION"
27+
envarLoadTruthset string = "SENZING_TOOLS_LOAD_TRUTHSET"
28+
envarSQLFile string = "SENZING_TOOLS_SQL_FILE"
2829
Short string = "Initialize a database with the Senzing schema and configuration"
2930
Use string = "init-database"
3031
)
@@ -35,6 +36,15 @@ var Long = getLong()
3536
// Context variables
3637
// ----------------------------------------------------------------------------
3738

39+
// Load the TruthSet data found at https://github.com/Senzing/truth-sets.
40+
var OptionLoadTruthset = option.ContextVariable{
41+
Arg: "load-truthset",
42+
Default: option.OsLookupEnvBool(envarLoadTruthset, false),
43+
Envar: envarLoadTruthset,
44+
Help: "Load the Senzing TruthSet files [%s]",
45+
Type: optiontype.Bool,
46+
}
47+
3848
var OptionEngineConfigurationFile = option.ContextVariable{
3949
Arg: "engine-configuration-file",
4050
Default: getEngineConfigurationFileDefault(),
@@ -60,7 +70,6 @@ var OptionInstallSenzingErConfiguration = option.ContextVariable{
6070
}
6171

6272
var ContextVariablesForMultiPlatform = []option.ContextVariable{
63-
OptionInstallSenzingErConfiguration,
6473
option.Configuration,
6574
option.CoreInstanceName,
6675
option.CoreLogLevel,
@@ -71,6 +80,8 @@ var ContextVariablesForMultiPlatform = []option.ContextVariable{
7180
option.LogLevel,
7281
option.ObserverOrigin,
7382
option.ObserverURL,
83+
OptionInstallSenzingErConfiguration,
84+
OptionLoadTruthset,
7485
}
7586

7687
var ContextVariables = append(ContextVariablesForMultiPlatform, ContextVariablesForOsArch...)
@@ -124,8 +135,10 @@ func RunE(_ *cobra.Command, _ []string) error {
124135
}
125136

126137
initializer := &initializer.BasicInitializer{
127-
DataSources: viper.GetStringSlice(option.Datasources.Arg),
128138
DatabaseURLs: databaseURLs,
139+
DataSources: viper.GetStringSlice(option.Datasources.Arg),
140+
InstallSenzingConfiguration: viper.GetBool(OptionInstallSenzingErConfiguration.Arg),
141+
LoadTruthset: viper.GetBool(OptionLoadTruthset.Arg),
129142
ObserverOrigin: viper.GetString(option.ObserverOrigin.Arg),
130143
ObserverURL: viper.GetString(option.ObserverURL.Arg),
131144
SenzingInstanceName: viper.GetString(option.CoreInstanceName.Arg),
@@ -134,7 +147,6 @@ func RunE(_ *cobra.Command, _ []string) error {
134147
SenzingSettingsFile: viper.GetString(OptionEngineConfigurationFile.Arg),
135148
SenzingVerboseLogging: viper.GetInt64(option.CoreLogLevel.Arg),
136149
SQLFile: viper.GetString(OptionSQLFile.Arg),
137-
InstallSenzingConfiguration: viper.GetBool(OptionInstallSenzingErConfiguration.Arg),
138150
}
139151

140152
err = initializer.Initialize(ctx)

docker-compose/docker-compose.mssql.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ services:
99
container_name: senzing-mssql-driver
1010
environment:
1111
ACCEPT_EULA: Y
12-
image: senzing/apt:${SENZING_DOCKER_IMAGE_VERSION_APT:-latest}
12+
image: senzing/apt:${SENZING_DOCKER_IMAGE_VERSION_SENZING_APT:-latest}
1313
networks:
1414
- senzing
1515
restart: on-failure
@@ -86,7 +86,7 @@ services:
8686
SENZING_TOOLS_DATASOURCES: "CUSTOMERS, REFERENCE, WATCHLIST"
8787
ODBCINI: /var/opt/senzing/odbc.ini
8888
ODBCSYSINI: /opt/microsoft/msodbcsql18/etc
89-
image: senzing/init-database:${SENZING_DOCKER_IMAGE_VERSION_INIT_DATABASE:-latest}
89+
image: senzing/init-database:${SENZING_DOCKER_IMAGE_VERSION_SENZING_INIT_DATABASE:-latest}
9090
networks:
9191
- senzing
9292
restart: on-failure
@@ -98,7 +98,7 @@ services:
9898
container_name: senzing-adminer
9999
environment:
100100
ADMINER_DEFAULT_SERVER: senzing-mssql
101-
image: senzing/adminer:${SENZING_DOCKER_IMAGE_VERSION_ADMINER:-latest}
101+
image: senzing/adminer:${SENZING_DOCKER_IMAGE_VERSION_SENZING_ADMINER:-latest}
102102
networks:
103103
- senzing
104104
ports:

docker-compose/docker-compose.mysql.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ services:
2525
environment:
2626
SENZING_TOOLS_DATABASE_URL: "mysql://mysql:mysql@mysql:3306/G2"
2727
SENZING_TOOLS_DATASOURCES: "CUSTOMERS, REFERENCE, WATCHLIST"
28-
image: senzing/init-database:${SENZING_DOCKER_IMAGE_VERSION_INIT_DATABASE:-latest}
28+
image: senzing/init-database:${SENZING_DOCKER_IMAGE_VERSION_SENZING_INIT_DATABASE:-latest}
2929
networks:
3030
- senzing
3131
restart: on-failure

docker-compose/docker-compose.postgresql.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ services:
4444
environment:
4545
# See https://hub.docker.com/_/postgres "Environment Variables"
4646
PGDATA: /var/lib/postgresql/data/pgdata
47-
POSTGRES_DB: ${POSTGRES_DB:-G2}
48-
POSTGRES_PASSWORD: ${POSTGRESQL_POSTGRES_PASSWORD:-postgres}
47+
POSTGRES_DB: G2
48+
POSTGRES_PASSWORD: postgres
4949
healthcheck:
50-
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USERNAME:-postgres}"]
50+
test: ["CMD-SHELL", "pg_isready -U postgres"]
5151
interval: 10s
5252
timeout: 5s
5353
retries: 5
@@ -68,7 +68,7 @@ services:
6868
environment:
6969
SENZING_TOOLS_DATABASE_URL: "postgresql://postgres:postgres@postgres:5432/G2/?sslmode=disable"
7070
SENZING_TOOLS_DATASOURCES: "CUSTOMERS, REFERENCE, WATCHLIST"
71-
image: senzing/init-database:${SENZING_DOCKER_IMAGE_VERSION_INIT_DATABASE:-latest}
71+
image: senzing/init-database:${SENZING_DOCKER_IMAGE_VERSION_SENZING_INIT_DATABASE:-latest}
7272
networks:
7373
- senzing
7474
restart: on-failure

0 commit comments

Comments
 (0)