decidim-voca 0.0.6

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.
Files changed (47) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.md +661 -0
  3. data/README.md +153 -0
  4. data/Rakefile +86 -0
  5. data/app/assets/config/voca_manifest.js +0 -0
  6. data/app/assets/images/decidim/voca/icon.svg +1 -0
  7. data/app/commands/decidim/voca/organization/command.rb +16 -0
  8. data/app/commands/decidim/voca/organization/organization_command.rb +17 -0
  9. data/app/commands/decidim/voca/organization/update_color_command.rb +35 -0
  10. data/app/commands/decidim/voca/organization/update_environment_command.rb +23 -0
  11. data/app/commands/decidim/voca/organization/update_feature_command.rb +32 -0
  12. data/app/commands/decidim/voca/organization/update_file_upload_command.rb +45 -0
  13. data/app/commands/decidim/voca/organization/update_locale_command.rb +53 -0
  14. data/app/commands/decidim/voca/organization/update_naming_command.rb +30 -0
  15. data/app/commands/decidim/voca/organization/update_permission_command.rb +31 -0
  16. data/app/commands/decidim/voca/organization/update_smtp_command.rb +51 -0
  17. data/app/controllers/decidim/voca/admin/application_controller.rb +15 -0
  18. data/app/controllers/decidim/voca/application_controller.rb +13 -0
  19. data/app/jobs/decidim/voca/command_job.rb +36 -0
  20. data/app/jobs/decidim/voca/webhook_notifier_job.rb +57 -0
  21. data/app/rpc/decidim/voca/decidim_service_controller.rb +68 -0
  22. data/app/rpc/decidim/voca/rpc/enum_casting.rb +58 -0
  23. data/app/rpc/decidim/voca/rpc/get_settings.rb +144 -0
  24. data/app/rpc/decidim/voca/rpc/health.rb +18 -0
  25. data/app/rpc/decidim/voca/rpc/seed_admin.rb +75 -0
  26. data/app/rpc/decidim/voca/rpc/set_settings.rb +56 -0
  27. data/app/rpc/decidim/voca/rpc/setup_db.rb +38 -0
  28. data/config/environments/development.rb +6 -0
  29. data/config/i18n-tasks.yml +9 -0
  30. data/config/locales/en.yml +6 -0
  31. data/config/spring.rb +2 -0
  32. data/lib/decidim/voca/admin.rb +10 -0
  33. data/lib/decidim/voca/admin_engine.rb +27 -0
  34. data/lib/decidim/voca/backup/app_backup.rb +169 -0
  35. data/lib/decidim/voca/backup/app_decrypt_backup_file.rb +50 -0
  36. data/lib/decidim/voca/backup/app_encrypt_backup_file.rb +49 -0
  37. data/lib/decidim/voca/backup/app_upload_to_s3.rb +49 -0
  38. data/lib/decidim/voca/engine.rb +31 -0
  39. data/lib/decidim/voca/middleware/dynamic_config_middleware.rb +42 -0
  40. data/lib/decidim/voca/rpc/decidim_pb.rb +134 -0
  41. data/lib/decidim/voca/rpc/decidim_services_pb.rb +30 -0
  42. data/lib/decidim/voca/test/factories.rb +9 -0
  43. data/lib/decidim/voca/updater.rb +50 -0
  44. data/lib/decidim/voca/version.rb +13 -0
  45. data/lib/decidim/voca.rb +22 -0
  46. data/lib/tasks/voca.rake +88 -0
  47. metadata +124 -0
@@ -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: []