sct 1.10.4 → 1.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/cluster/lib/cluster/runner.rb +4 -2
- data/henk/lib/henk/commands_generator.rb +1 -1
- data/henk/lib/henk/runner.rb +70 -4
- data/sct/lib/sct/version.rb +1 -1
- metadata +28 -40
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 83b5089b7b2e78f5a4b94b62278fa9159e60f1e70654eb65921e59f3b2c69d8e
|
|
4
|
+
data.tar.gz: 8967410c1dbbfc370d64b6744f93cc76ac01be25db05967d4830cc515292a0db
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 077e1d0700e0a844cc430bda5ec36016056325a3ec5afa272321ce85da4aaa7dc0a5575011b73fd0973a8a94d80efbde84fc88c193549826c5d0b4e8bd5dbad2
|
|
7
|
+
data.tar.gz: 8599299496eafc2f35e5ca362d10a2caf37883d174a68b8dddaf898cf54164e8830d033607ba7197f0ef8954ee66288f757dc4bc4122817b1e1c646f1450169e
|
|
@@ -25,6 +25,8 @@ module Cluster
|
|
|
25
25
|
ENV[KEY_CADDYFILE_PATH] = './docker/caddy/Caddyfile-nuxt'
|
|
26
26
|
end
|
|
27
27
|
|
|
28
|
+
dc "down --remove-orphans"
|
|
29
|
+
|
|
28
30
|
if options.pull
|
|
29
31
|
dc "pull"
|
|
30
32
|
end
|
|
@@ -35,12 +37,12 @@ module Cluster
|
|
|
35
37
|
|
|
36
38
|
run "docker container prune -f"
|
|
37
39
|
|
|
38
|
-
dc "up --detach --remove-orphans --force-recreate --always-recreate-deps"
|
|
39
|
-
|
|
40
40
|
if options.pull or options.build
|
|
41
41
|
system "docker image prune -f"
|
|
42
42
|
end
|
|
43
43
|
|
|
44
|
+
dc "up --detach --remove-orphans"
|
|
45
|
+
|
|
44
46
|
UI.success("\n\e[32m✔️ You can visit your environment at \e[4;36m👉 https://spend-cloud.dev.spend.cloud \e[0m👌\n\n\e[33mFront-end developers should run \e[1mpnpm run dev\e[0;33m within \e[1m/spend-cloud/ui\e[0;33m and work with their dev server.\e[0m\n\e[34mIt proxies to your development API.\e[0m\n")
|
|
45
47
|
end
|
|
46
48
|
|
data/henk/lib/henk/runner.rb
CHANGED
|
@@ -4,6 +4,24 @@ module Henk
|
|
|
4
4
|
class Runner
|
|
5
5
|
attr_accessor :options_mapping
|
|
6
6
|
|
|
7
|
+
# Tables in spend-cloud-config database that have a client_id column
|
|
8
|
+
# These will be cleaned up when removing a customer
|
|
9
|
+
# This list matches the production Go service deleteClient function
|
|
10
|
+
CONFIG_TABLES_WITH_CLIENT_ID = [
|
|
11
|
+
'00_settings',
|
|
12
|
+
'01_settings',
|
|
13
|
+
'02_settings',
|
|
14
|
+
'03_settings',
|
|
15
|
+
'04_settings',
|
|
16
|
+
'05_settings',
|
|
17
|
+
'06_settings',
|
|
18
|
+
'07_settings',
|
|
19
|
+
'08_settings',
|
|
20
|
+
'06_settings_external_supplier',
|
|
21
|
+
'translation_settings',
|
|
22
|
+
'client_module'
|
|
23
|
+
].freeze
|
|
24
|
+
|
|
7
25
|
def initialize
|
|
8
26
|
@options_mapping = {
|
|
9
27
|
"organization_name" => {
|
|
@@ -180,7 +198,9 @@ module Henk
|
|
|
180
198
|
begin
|
|
181
199
|
zip = download_and_unzip dump_url, dir
|
|
182
200
|
|
|
183
|
-
customer
|
|
201
|
+
# Extract customer name from zip filename (format: customer_timestamp or just customer)
|
|
202
|
+
underscore_index = zip.rindex("_")
|
|
203
|
+
customer = underscore_index ? zip.slice(0, underscore_index) : zip
|
|
184
204
|
|
|
185
205
|
customer_database = customer.gsub "-", "_"
|
|
186
206
|
|
|
@@ -207,7 +227,7 @@ module Henk
|
|
|
207
227
|
|
|
208
228
|
run "unzip #{zip_path} -d #{dir}"
|
|
209
229
|
|
|
210
|
-
|
|
230
|
+
File.basename zip_path, ".zip"
|
|
211
231
|
end
|
|
212
232
|
|
|
213
233
|
def remove_customer customer
|
|
@@ -216,14 +236,60 @@ module Henk
|
|
|
216
236
|
if local_customers.include? customer
|
|
217
237
|
puts "Customer already exists. Removing customer before importing...".yellow
|
|
218
238
|
|
|
219
|
-
|
|
239
|
+
customer_database = customer.gsub "-", "_"
|
|
240
|
+
|
|
241
|
+
remove_customer_from_config_database customer
|
|
242
|
+
|
|
243
|
+
puts "Dropping database #{customer_database}...".blue
|
|
244
|
+
run_query "DROP DATABASE IF EXISTS `#{customer_database}`"
|
|
245
|
+
|
|
246
|
+
puts "Removing customer from proactive_accounts.ini...".blue
|
|
247
|
+
run "docker exec proactive-config sed -i '/^\\[#{customer}\\]/,/^$/d' /data/proactive_accounts.ini"
|
|
248
|
+
|
|
249
|
+
puts "Removing customer data directory...".blue
|
|
250
|
+
run "docker exec proactive-config rm -rf /data/#{customer}"
|
|
220
251
|
|
|
221
252
|
puts "Removed existing customer".green
|
|
222
253
|
end
|
|
223
254
|
end
|
|
224
255
|
|
|
256
|
+
def remove_customer_from_config_database customer
|
|
257
|
+
puts "Finding client_id for #{customer}...".blue
|
|
258
|
+
client_id_result = `docker exec mysql-service mysql -u root -sN -e 'SELECT client_id FROM \`spend-cloud-config\`.\`00_settings\` WHERE \`043\` = "#{customer}"'`.strip
|
|
259
|
+
|
|
260
|
+
if !client_id_result.empty?
|
|
261
|
+
client_id = client_id_result.to_i
|
|
262
|
+
puts "Found client_id: #{client_id}".blue
|
|
263
|
+
|
|
264
|
+
puts "Removing customer from #{CONFIG_TABLES_WITH_CLIENT_ID.length} config tables...".blue
|
|
265
|
+
delete_client_data_from_tables client_id
|
|
266
|
+
|
|
267
|
+
puts "Removing customer from client table...".blue
|
|
268
|
+
run_query "DELETE FROM `client` WHERE `id` = #{client_id}", database: "spend-cloud-config"
|
|
269
|
+
|
|
270
|
+
puts "Removed all config database entries".green
|
|
271
|
+
else
|
|
272
|
+
puts "Warning: ".yellow + "Could not find client_id in config database, attempting cleanup with domain name only"
|
|
273
|
+
run_query "DELETE FROM `00_settings` WHERE `043` = \"#{customer}\"", database: "spend-cloud-config"
|
|
274
|
+
end
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
def delete_client_data_from_tables client_id
|
|
278
|
+
CONFIG_TABLES_WITH_CLIENT_ID.each do |table|
|
|
279
|
+
next if table == 'client'
|
|
280
|
+
|
|
281
|
+
puts " Deleting from #{table}...".blue
|
|
282
|
+
run_query "DELETE FROM `#{table}` WHERE `client_id` = #{client_id}", database: "spend-cloud-config"
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
puts " Cleaning up orphaned records...".blue
|
|
286
|
+
run_query "DELETE FROM `01_settings_extra_velden` WHERE `settings_id` NOT IN (SELECT `id` FROM `01_settings`)", database: "spend-cloud-config"
|
|
287
|
+
run_query "DELETE FROM `04_settings_contractgegevens` WHERE `settings_id` NOT IN (SELECT `id` FROM `04_settings`)", database: "spend-cloud-config"
|
|
288
|
+
end
|
|
289
|
+
|
|
225
290
|
def copy_db_encryption_key customer, dir
|
|
226
|
-
run "docker exec
|
|
291
|
+
run "docker exec proactive-config mkdir -p /data/#{customer}"
|
|
292
|
+
run "docker exec proactive-config chown www-data:www-data /data/#{customer}"
|
|
227
293
|
run "docker cp #{dir}/db_encryption.key proactive-config:/data/#{customer}/"
|
|
228
294
|
|
|
229
295
|
puts "Copied db_encryption.key to proactive-config:/data/#{customer}/".green
|
data/sct/lib/sct/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sct
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.11.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Reshad Farid
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-10-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: colored
|
|
@@ -30,42 +30,42 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 4.
|
|
33
|
+
version: '4.6'
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 4.
|
|
40
|
+
version: '4.6'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: highline
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
|
-
- - "
|
|
45
|
+
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
47
|
+
version: '2.0'
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
|
-
- - "
|
|
52
|
+
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
54
|
+
version: '2.0'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: terminal-table
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
61
|
+
version: '3.0'
|
|
62
62
|
type: :runtime
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
68
|
+
version: '3.0'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: excon
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -106,54 +106,42 @@ dependencies:
|
|
|
106
106
|
requirements:
|
|
107
107
|
- - "~>"
|
|
108
108
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: 4.
|
|
109
|
+
version: '4.19'
|
|
110
110
|
type: :runtime
|
|
111
111
|
prerelease: false
|
|
112
112
|
version_requirements: !ruby/object:Gem::Requirement
|
|
113
113
|
requirements:
|
|
114
114
|
- - "~>"
|
|
115
115
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: 4.
|
|
116
|
+
version: '4.19'
|
|
117
117
|
- !ruby/object:Gem::Dependency
|
|
118
118
|
name: tty-screen
|
|
119
119
|
requirement: !ruby/object:Gem::Requirement
|
|
120
120
|
requirements:
|
|
121
|
-
- - "
|
|
122
|
-
- !ruby/object:Gem::Version
|
|
123
|
-
version: 0.6.3
|
|
124
|
-
- - "<"
|
|
121
|
+
- - "~>"
|
|
125
122
|
- !ruby/object:Gem::Version
|
|
126
|
-
version:
|
|
123
|
+
version: '0.8'
|
|
127
124
|
type: :runtime
|
|
128
125
|
prerelease: false
|
|
129
126
|
version_requirements: !ruby/object:Gem::Requirement
|
|
130
127
|
requirements:
|
|
131
|
-
- - "
|
|
132
|
-
- !ruby/object:Gem::Version
|
|
133
|
-
version: 0.6.3
|
|
134
|
-
- - "<"
|
|
128
|
+
- - "~>"
|
|
135
129
|
- !ruby/object:Gem::Version
|
|
136
|
-
version:
|
|
130
|
+
version: '0.8'
|
|
137
131
|
- !ruby/object:Gem::Dependency
|
|
138
132
|
name: tty-spinner
|
|
139
133
|
requirement: !ruby/object:Gem::Requirement
|
|
140
134
|
requirements:
|
|
141
|
-
- - "
|
|
142
|
-
- !ruby/object:Gem::Version
|
|
143
|
-
version: 0.8.0
|
|
144
|
-
- - "<"
|
|
135
|
+
- - "~>"
|
|
145
136
|
- !ruby/object:Gem::Version
|
|
146
|
-
version:
|
|
137
|
+
version: '0.9'
|
|
147
138
|
type: :runtime
|
|
148
139
|
prerelease: false
|
|
149
140
|
version_requirements: !ruby/object:Gem::Requirement
|
|
150
141
|
requirements:
|
|
151
|
-
- - "
|
|
152
|
-
- !ruby/object:Gem::Version
|
|
153
|
-
version: 0.8.0
|
|
154
|
-
- - "<"
|
|
142
|
+
- - "~>"
|
|
155
143
|
- !ruby/object:Gem::Version
|
|
156
|
-
version:
|
|
144
|
+
version: '0.9'
|
|
157
145
|
- !ruby/object:Gem::Dependency
|
|
158
146
|
name: bundler
|
|
159
147
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -174,28 +162,28 @@ dependencies:
|
|
|
174
162
|
requirements:
|
|
175
163
|
- - "~>"
|
|
176
164
|
- !ruby/object:Gem::Version
|
|
177
|
-
version: '
|
|
165
|
+
version: '13.0'
|
|
178
166
|
type: :development
|
|
179
167
|
prerelease: false
|
|
180
168
|
version_requirements: !ruby/object:Gem::Requirement
|
|
181
169
|
requirements:
|
|
182
170
|
- - "~>"
|
|
183
171
|
- !ruby/object:Gem::Version
|
|
184
|
-
version: '
|
|
172
|
+
version: '13.0'
|
|
185
173
|
- !ruby/object:Gem::Dependency
|
|
186
174
|
name: rspec
|
|
187
175
|
requirement: !ruby/object:Gem::Requirement
|
|
188
176
|
requirements:
|
|
189
177
|
- - "~>"
|
|
190
178
|
- !ruby/object:Gem::Version
|
|
191
|
-
version: '3.
|
|
179
|
+
version: '3.12'
|
|
192
180
|
type: :development
|
|
193
181
|
prerelease: false
|
|
194
182
|
version_requirements: !ruby/object:Gem::Requirement
|
|
195
183
|
requirements:
|
|
196
184
|
- - "~>"
|
|
197
185
|
- !ruby/object:Gem::Version
|
|
198
|
-
version: '3.
|
|
186
|
+
version: '3.12'
|
|
199
187
|
description: Spend Cloud Tool enables to setup a local development environment for
|
|
200
188
|
the Spend Cloud.
|
|
201
189
|
email:
|
|
@@ -253,22 +241,22 @@ metadata:
|
|
|
253
241
|
post_install_message:
|
|
254
242
|
rdoc_options: []
|
|
255
243
|
require_paths:
|
|
256
|
-
-
|
|
244
|
+
- cluster/lib
|
|
257
245
|
- henk/lib
|
|
246
|
+
- sct/lib
|
|
258
247
|
- sct_core/lib
|
|
259
|
-
- cluster/lib
|
|
260
248
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
261
249
|
requirements:
|
|
262
250
|
- - ">="
|
|
263
251
|
- !ruby/object:Gem::Version
|
|
264
|
-
version: 2.
|
|
252
|
+
version: 2.7.0
|
|
265
253
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
266
254
|
requirements:
|
|
267
255
|
- - ">="
|
|
268
256
|
- !ruby/object:Gem::Version
|
|
269
257
|
version: '0'
|
|
270
258
|
requirements: []
|
|
271
|
-
rubygems_version: 3.
|
|
259
|
+
rubygems_version: 3.5.22
|
|
272
260
|
signing_key:
|
|
273
261
|
specification_version: 4
|
|
274
262
|
summary: Spend Cloud Tool.
|