decidim-voca 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.md +661 -0
- data/README.md +153 -0
- data/Rakefile +86 -0
- data/app/assets/config/voca_manifest.js +0 -0
- data/app/assets/images/decidim/voca/icon.svg +1 -0
- data/app/commands/decidim/voca/organization/command.rb +16 -0
- data/app/commands/decidim/voca/organization/organization_command.rb +17 -0
- data/app/commands/decidim/voca/organization/update_color_command.rb +35 -0
- data/app/commands/decidim/voca/organization/update_environment_command.rb +23 -0
- data/app/commands/decidim/voca/organization/update_feature_command.rb +32 -0
- data/app/commands/decidim/voca/organization/update_file_upload_command.rb +45 -0
- data/app/commands/decidim/voca/organization/update_locale_command.rb +53 -0
- data/app/commands/decidim/voca/organization/update_naming_command.rb +30 -0
- data/app/commands/decidim/voca/organization/update_permission_command.rb +31 -0
- data/app/commands/decidim/voca/organization/update_smtp_command.rb +51 -0
- data/app/controllers/decidim/voca/admin/application_controller.rb +15 -0
- data/app/controllers/decidim/voca/application_controller.rb +13 -0
- data/app/jobs/decidim/voca/command_job.rb +36 -0
- data/app/jobs/decidim/voca/webhook_notifier_job.rb +57 -0
- data/app/rpc/decidim/voca/decidim_service_controller.rb +68 -0
- data/app/rpc/decidim/voca/rpc/enum_casting.rb +58 -0
- data/app/rpc/decidim/voca/rpc/get_settings.rb +144 -0
- data/app/rpc/decidim/voca/rpc/health.rb +18 -0
- data/app/rpc/decidim/voca/rpc/seed_admin.rb +75 -0
- data/app/rpc/decidim/voca/rpc/set_settings.rb +56 -0
- data/app/rpc/decidim/voca/rpc/setup_db.rb +38 -0
- data/config/environments/development.rb +6 -0
- data/config/i18n-tasks.yml +9 -0
- data/config/locales/en.yml +6 -0
- data/config/spring.rb +2 -0
- data/lib/decidim/voca/admin.rb +10 -0
- data/lib/decidim/voca/admin_engine.rb +27 -0
- data/lib/decidim/voca/backup/app_backup.rb +169 -0
- data/lib/decidim/voca/backup/app_decrypt_backup_file.rb +50 -0
- data/lib/decidim/voca/backup/app_encrypt_backup_file.rb +49 -0
- data/lib/decidim/voca/backup/app_upload_to_s3.rb +49 -0
- data/lib/decidim/voca/engine.rb +31 -0
- data/lib/decidim/voca/middleware/dynamic_config_middleware.rb +42 -0
- data/lib/decidim/voca/rpc/decidim_pb.rb +134 -0
- data/lib/decidim/voca/rpc/decidim_services_pb.rb +30 -0
- data/lib/decidim/voca/test/factories.rb +9 -0
- data/lib/decidim/voca/updater.rb +50 -0
- data/lib/decidim/voca/version.rb +13 -0
- data/lib/decidim/voca.rb +22 -0
- data/lib/tasks/voca.rake +88 -0
- metadata +124 -0
data/lib/tasks/voca.rake
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "decidim/voca"
|
4
|
+
|
5
|
+
def task_succeeded(task, metadata = {})
|
6
|
+
metadata[:ok] = true
|
7
|
+
|
8
|
+
metadata[:time] = DateTime.now.strftime("%Q")
|
9
|
+
Decidim::Voca::WebhookNotifierJob.perform_now(metadata, "decidim.#{task}")
|
10
|
+
puts "task succeed"
|
11
|
+
end
|
12
|
+
|
13
|
+
def task_failed(task, error, metadata = {})
|
14
|
+
metadata[:ok] = false
|
15
|
+
metadata[:message] = "#{error}"
|
16
|
+
metadata[:time] = DateTime.now.strftime("%Q")
|
17
|
+
puts "task failed", "#{error}"
|
18
|
+
Decidim::Voca::WebhookNotifierJob.perform_now(metadata, "decidim.#{task}")
|
19
|
+
puts "task failed", "#{error}"
|
20
|
+
end
|
21
|
+
|
22
|
+
namespace :voca do
|
23
|
+
desc """
|
24
|
+
Execute PG_DUMP for decidim database, tar.gz
|
25
|
+
for $RAILS_ROOT/public/uploads and stores in vocacity
|
26
|
+
backup storage
|
27
|
+
"""
|
28
|
+
|
29
|
+
desc "Backup Decidim Resources"
|
30
|
+
task :backup, [:folder] => :environment do |t, args|
|
31
|
+
args.with_defaults(folder: "hebdomadaire")
|
32
|
+
backup_runner = Decidim::Voca::AppBackup.new
|
33
|
+
backup_file = backup_runner.run!
|
34
|
+
backup_file_encrypter = Decidim::Voca::AppEncryptBackupFile.new(backup_file)
|
35
|
+
backup_file_encrypter.encrypt!
|
36
|
+
backup_file_encrypted = backup_file_encrypter.file_enc
|
37
|
+
backup_uploader = Decidim::Voca::Uploader.new(backup_file_encrypted, args[:folder])
|
38
|
+
backup_uploader.upload!
|
39
|
+
Rails.logger.info "⚙️ voca:backup done. (#{backup_file_encrypted})"
|
40
|
+
task_succeeded("backup", { file: backup_file_encrypted })
|
41
|
+
rescue Exception => e
|
42
|
+
task_failed("backup", e)
|
43
|
+
end
|
44
|
+
|
45
|
+
desc """Send webhook
|
46
|
+
Send a webhook to the ENV['WEBHOOK_URL']
|
47
|
+
|
48
|
+
Example
|
49
|
+
rails voca:webhook payload='{\'precompiled\':true, \'msg\':\'assets precompiled\'}' name='decidim.assets_compiled' now='true'
|
50
|
+
"""
|
51
|
+
task webhook: :environment do
|
52
|
+
payload = JSON[ENV.fetch("payload", "{}")]
|
53
|
+
name = ENV.fetch("name", "decidim")
|
54
|
+
is_perform_now = ENV.fetch("now", "false") == "true"
|
55
|
+
if is_perform_now
|
56
|
+
Decidim::Voca::WebhookNotifierJob.perform_now(payload, name)
|
57
|
+
else
|
58
|
+
Decidim::Voca::WebhookNotifierJob.perform_later(payload, name)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
|
63
|
+
desc "Execute a command "
|
64
|
+
task command: :environment do
|
65
|
+
vars = JSON[ENV.fetch("vars", "{}")]
|
66
|
+
name = ENV.fetch("name", "backup").strip
|
67
|
+
Decidim::Voca::CommandJob.perform_now(name, vars)
|
68
|
+
task_succeeded("command", { enqueued: name })
|
69
|
+
rescue Exception => e
|
70
|
+
task_failed("command", e)
|
71
|
+
end
|
72
|
+
|
73
|
+
desc """Update decidim host
|
74
|
+
Update the host with the given host argument
|
75
|
+
|
76
|
+
Example
|
77
|
+
rails voca:update:host host='test.ch'
|
78
|
+
"""
|
79
|
+
task "update:host": :environment do
|
80
|
+
new_host = ENV.fetch("host", "")
|
81
|
+
raise "host not found" unless new_host.present?
|
82
|
+
|
83
|
+
Decidim::Voca::Updater.update! host: new_host
|
84
|
+
task_succeeded("update_host", { data: { host: new_host } })
|
85
|
+
rescue Exception => e
|
86
|
+
task_failed("update_host", e)
|
87
|
+
end
|
88
|
+
end
|
metadata
ADDED
@@ -0,0 +1,124 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: decidim-voca
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.6
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Renato
|
8
|
+
- Hadrien
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2024-03-07 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: aws-sdk-s3
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '1'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '1'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: gruf
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '2.14'
|
35
|
+
- - ">="
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 2.14.1
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
requirements:
|
42
|
+
- - "~>"
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '2.14'
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 2.14.1
|
48
|
+
description: voca
|
49
|
+
email:
|
50
|
+
- renato@octree.ch
|
51
|
+
- hadrien@octree.ch
|
52
|
+
executables: []
|
53
|
+
extensions: []
|
54
|
+
extra_rdoc_files: []
|
55
|
+
files:
|
56
|
+
- LICENSE.md
|
57
|
+
- README.md
|
58
|
+
- Rakefile
|
59
|
+
- app/assets/config/voca_manifest.js
|
60
|
+
- app/assets/images/decidim/voca/icon.svg
|
61
|
+
- app/commands/decidim/voca/organization/command.rb
|
62
|
+
- app/commands/decidim/voca/organization/organization_command.rb
|
63
|
+
- app/commands/decidim/voca/organization/update_color_command.rb
|
64
|
+
- app/commands/decidim/voca/organization/update_environment_command.rb
|
65
|
+
- app/commands/decidim/voca/organization/update_feature_command.rb
|
66
|
+
- app/commands/decidim/voca/organization/update_file_upload_command.rb
|
67
|
+
- app/commands/decidim/voca/organization/update_locale_command.rb
|
68
|
+
- app/commands/decidim/voca/organization/update_naming_command.rb
|
69
|
+
- app/commands/decidim/voca/organization/update_permission_command.rb
|
70
|
+
- app/commands/decidim/voca/organization/update_smtp_command.rb
|
71
|
+
- app/controllers/decidim/voca/admin/application_controller.rb
|
72
|
+
- app/controllers/decidim/voca/application_controller.rb
|
73
|
+
- app/jobs/decidim/voca/command_job.rb
|
74
|
+
- app/jobs/decidim/voca/webhook_notifier_job.rb
|
75
|
+
- app/rpc/decidim/voca/decidim_service_controller.rb
|
76
|
+
- app/rpc/decidim/voca/rpc/enum_casting.rb
|
77
|
+
- app/rpc/decidim/voca/rpc/get_settings.rb
|
78
|
+
- app/rpc/decidim/voca/rpc/health.rb
|
79
|
+
- app/rpc/decidim/voca/rpc/seed_admin.rb
|
80
|
+
- app/rpc/decidim/voca/rpc/set_settings.rb
|
81
|
+
- app/rpc/decidim/voca/rpc/setup_db.rb
|
82
|
+
- config/environments/development.rb
|
83
|
+
- config/i18n-tasks.yml
|
84
|
+
- config/locales/en.yml
|
85
|
+
- config/spring.rb
|
86
|
+
- lib/decidim/voca.rb
|
87
|
+
- lib/decidim/voca/admin.rb
|
88
|
+
- lib/decidim/voca/admin_engine.rb
|
89
|
+
- lib/decidim/voca/backup/app_backup.rb
|
90
|
+
- lib/decidim/voca/backup/app_decrypt_backup_file.rb
|
91
|
+
- lib/decidim/voca/backup/app_encrypt_backup_file.rb
|
92
|
+
- lib/decidim/voca/backup/app_upload_to_s3.rb
|
93
|
+
- lib/decidim/voca/engine.rb
|
94
|
+
- lib/decidim/voca/middleware/dynamic_config_middleware.rb
|
95
|
+
- lib/decidim/voca/rpc/decidim_pb.rb
|
96
|
+
- lib/decidim/voca/rpc/decidim_services_pb.rb
|
97
|
+
- lib/decidim/voca/test/factories.rb
|
98
|
+
- lib/decidim/voca/updater.rb
|
99
|
+
- lib/decidim/voca/version.rb
|
100
|
+
- lib/tasks/voca.rake
|
101
|
+
homepage: https://git.octree.ch/decidim/vocacity/tasks
|
102
|
+
licenses:
|
103
|
+
- AGPL-3.0
|
104
|
+
metadata: {}
|
105
|
+
post_install_message:
|
106
|
+
rdoc_options: []
|
107
|
+
require_paths:
|
108
|
+
- lib
|
109
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '2.7'
|
114
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
requirements: []
|
120
|
+
rubygems_version: 3.2.22
|
121
|
+
signing_key:
|
122
|
+
specification_version: 4
|
123
|
+
summary: A decidim voca module
|
124
|
+
test_files: []
|