loggable_activity 0.2.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +29 -42
  3. data/.vscode/commands.json +2 -2
  4. data/.vscode/terminals.json +8 -8
  5. data/CHEAT_SHEET.md +31 -0
  6. data/MIT-LICENSE +21 -0
  7. data/README.md +31 -45
  8. data/Rakefile +6 -4
  9. data/app/assets/config/loggable_activity_manifest.js +4 -0
  10. data/app/assets/javascripts/loggable_activity/application.js +2 -0
  11. data/app/assets/stylesheets/loggable_activity/application.scss +20 -0
  12. data/app/controllers/concerns/.keep +0 -0
  13. data/app/controllers/loggable_activity/activities_controller.rb +12 -0
  14. data/app/controllers/loggable_activity/application_controller.rb +6 -0
  15. data/app/helpers/loggable_activity/activities_helper.rb +17 -0
  16. data/app/helpers/loggable_activity/application_helper.rb +6 -0
  17. data/app/jobs/loggable_activity/application_job.rb +6 -0
  18. data/app/mailers/loggable_activity/application_mailer.rb +8 -0
  19. data/app/models/loggable_activity/application_record.rb +7 -0
  20. data/app/views/kaminari/kaminari-turbo-bootstrap/_first_page.html.erb +14 -0
  21. data/app/views/kaminari/kaminari-turbo-bootstrap/_gap.html.erb +8 -0
  22. data/app/views/kaminari/kaminari-turbo-bootstrap/_last_page.html.erb +13 -0
  23. data/app/views/kaminari/kaminari-turbo-bootstrap/_next_page.html.erb +13 -0
  24. data/app/views/kaminari/kaminari-turbo-bootstrap/_page.html.erb +14 -0
  25. data/app/views/kaminari/kaminari-turbo-bootstrap/_paginator.html.erb +27 -0
  26. data/app/views/kaminari/kaminari-turbo-bootstrap/_prev_page.html.erb +14 -0
  27. data/app/views/layouts/loggable_activity/application.html.erb +19 -0
  28. data/app/views/loggable_activity/activities/_activities.html.erb +56 -0
  29. data/app/views/loggable_activity/activities/index.html.erb +7 -0
  30. data/app/views/loggable_activity/activities/show.html.erb +2 -0
  31. data/config/initializers/kaminari_config.rb +14 -0
  32. data/config/routes.rb +7 -0
  33. data/{lib/generators/loggable_activity/templates/create_loggable_activities.rb → db/migrate/20240702092648_create_loggable_activity_tables.rb} +18 -10
  34. data/git-org/HEAD +1 -0
  35. data/git-org/config +7 -0
  36. data/git-org/description +1 -0
  37. data/git-org/hooks/applypatch-msg.sample +15 -0
  38. data/git-org/hooks/commit-msg.sample +24 -0
  39. data/git-org/hooks/fsmonitor-watchman.sample +174 -0
  40. data/git-org/hooks/post-update.sample +8 -0
  41. data/git-org/hooks/pre-applypatch.sample +14 -0
  42. data/git-org/hooks/pre-commit.sample +49 -0
  43. data/git-org/hooks/pre-merge-commit.sample +13 -0
  44. data/git-org/hooks/pre-push.sample +53 -0
  45. data/git-org/hooks/pre-rebase.sample +169 -0
  46. data/git-org/hooks/pre-receive.sample +24 -0
  47. data/git-org/hooks/prepare-commit-msg.sample +42 -0
  48. data/git-org/hooks/push-to-checkout.sample +78 -0
  49. data/git-org/hooks/update.sample +128 -0
  50. data/git-org/info/exclude +6 -0
  51. data/lib/loggable_activity/activity.rb +3 -3
  52. data/lib/{schemas → loggable_activity}/config_schema.json +3 -3
  53. data/lib/loggable_activity/configuration.rb +51 -75
  54. data/lib/loggable_activity/data_owner.rb +0 -1
  55. data/lib/loggable_activity/encryption.rb +16 -7
  56. data/lib/loggable_activity/encryption_key.rb +4 -7
  57. data/lib/loggable_activity/engine.rb +27 -0
  58. data/lib/loggable_activity/error.rb +0 -10
  59. data/lib/loggable_activity/hooks.rb +10 -5
  60. data/lib/loggable_activity/payload.rb +8 -11
  61. data/lib/loggable_activity/sanitizer.rb +6 -2
  62. data/lib/loggable_activity/services/base_payloads_builder.rb +14 -5
  63. data/lib/loggable_activity/services/destroy_payloads_builder.rb +2 -1
  64. data/lib/loggable_activity/services/payloads_builder.rb +9 -2
  65. data/lib/loggable_activity/services/update_payloads_builder.rb +30 -2
  66. data/lib/loggable_activity/version.rb +1 -1
  67. data/lib/loggable_activity.rb +51 -14
  68. data/lib/tasks/loggable_activity_tasks.rake +6 -0
  69. metadata +129 -117
  70. data/.document +0 -1
  71. data/.nojekyll +0 -1
  72. data/.rspec +0 -3
  73. data/CONSIDERTIONS.md +0 -129
  74. data/GETTING-STARTED.md +0 -119
  75. data/LICENSE.txt +0 -21
  76. data/PAYLOAD_EXAMPLE.md +0 -63
  77. data/ROADMAP.md +0 -23
  78. data/docs/LoggableActivity/Activity.html +0 -555
  79. data/docs/LoggableActivity/Configuration.html +0 -330
  80. data/docs/LoggableActivity/ConfigurationError.html +0 -148
  81. data/docs/LoggableActivity/DataOwner.html +0 -138
  82. data/docs/LoggableActivity/Encryption.html +0 -234
  83. data/docs/LoggableActivity/EncryptionError.html +0 -145
  84. data/docs/LoggableActivity/EncryptionKey.html +0 -351
  85. data/docs/LoggableActivity/Error.html +0 -145
  86. data/docs/LoggableActivity/Hooks.html +0 -759
  87. data/docs/LoggableActivity/Payload.html +0 -432
  88. data/docs/LoggableActivity/Services/BasePayloadsBuilder.html +0 -442
  89. data/docs/LoggableActivity/Services/DestroyPayloadsBuilder.html +0 -395
  90. data/docs/LoggableActivity/Services/PayloadsBuilder.html +0 -342
  91. data/docs/LoggableActivity/Services/UpdatePayloadsBuilder.html +0 -490
  92. data/docs/LoggableActivity/Services.html +0 -93
  93. data/docs/LoggableActivity.html +0 -102
  94. data/docs/created.rid +0 -14
  95. data/docs/css/fonts.css +0 -167
  96. data/docs/css/rdoc.css +0 -687
  97. data/docs/fonts/Lato-Light.ttf +0 -0
  98. data/docs/fonts/Lato-LightItalic.ttf +0 -0
  99. data/docs/fonts/Lato-Regular.ttf +0 -0
  100. data/docs/fonts/Lato-RegularItalic.ttf +0 -0
  101. data/docs/fonts/SourceCodePro-Bold.ttf +0 -0
  102. data/docs/fonts/SourceCodePro-Regular.ttf +0 -0
  103. data/docs/images/add.png +0 -0
  104. data/docs/images/arrow_up.png +0 -0
  105. data/docs/images/brick.png +0 -0
  106. data/docs/images/brick_link.png +0 -0
  107. data/docs/images/bug.png +0 -0
  108. data/docs/images/bullet_black.png +0 -0
  109. data/docs/images/bullet_toggle_minus.png +0 -0
  110. data/docs/images/bullet_toggle_plus.png +0 -0
  111. data/docs/images/date.png +0 -0
  112. data/docs/images/delete.png +0 -0
  113. data/docs/images/find.png +0 -0
  114. data/docs/images/loadingAnimation.gif +0 -0
  115. data/docs/images/macFFBgHack.png +0 -0
  116. data/docs/images/package.png +0 -0
  117. data/docs/images/page_green.png +0 -0
  118. data/docs/images/page_white_text.png +0 -0
  119. data/docs/images/page_white_width.png +0 -0
  120. data/docs/images/plugin.png +0 -0
  121. data/docs/images/ruby.png +0 -0
  122. data/docs/images/tag_blue.png +0 -0
  123. data/docs/images/tag_green.png +0 -0
  124. data/docs/images/transparent.png +0 -0
  125. data/docs/images/wrench.png +0 -0
  126. data/docs/images/wrench_orange.png +0 -0
  127. data/docs/images/zoom.png +0 -0
  128. data/docs/index.html +0 -99
  129. data/docs/js/darkfish.js +0 -97
  130. data/docs/js/navigation.js +0 -105
  131. data/docs/js/navigation.js.gz +0 -0
  132. data/docs/js/search.js +0 -110
  133. data/docs/js/search_index.js +0 -1
  134. data/docs/js/search_index.js.gz +0 -0
  135. data/docs/js/searcher.js +0 -229
  136. data/docs/js/searcher.js.gz +0 -0
  137. data/docs/table_of_contents.html +0 -617
  138. data/help/loggable_activity_help.txt +0 -19
  139. data/lib/generators/.DS_Store +0 -0
  140. data/lib/generators/loggable_activity/.DS_Store +0 -0
  141. data/lib/generators/loggable_activity/install_generator.rb +0 -109
  142. data/lib/generators/loggable_activity/templates/.DS_Store +0 -0
  143. data/lib/generators/loggable_activity/templates/binary_ids/create_loggable_activities.rb +0 -30
  144. data/lib/generators/loggable_activity/templates/config/locales/loggable_activity.en.yml +0 -36
  145. data/lib/generators/loggable_activity/templates/config/loggable_activity.yaml +0 -29
  146. data/lib/generators/loggable_activity/templates/loggable_activity.en.yaml +0 -36
  147. data/pkg/loggable_activity-0.1.35.gem +0 -0
  148. data/sig/loggable_activity.rbs +0 -4
  149. /data/{.rspec_status → app/assets/images/loggable_activity/.keep} +0 -0
  150. /data/lib/{generators/loggable_activity/templates → loggable_activity/concerns}/current_user.rb +0 -0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: loggable_activity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Max \nGroenlund"
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-06-25 00:00:00.000000000 Z
11
+ date: 2024-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -25,87 +25,99 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: 7.1.3
27
27
  - !ruby/object:Gem::Dependency
28
- name: json-schema
28
+ name: bootstrap
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '4.1'
33
+ version: '5.3'
34
34
  - - ">="
35
35
  - !ruby/object:Gem::Version
36
- version: 4.1.1
36
+ version: 5.3.3
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: '4.1'
43
+ version: '5.3'
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 4.1.1
46
+ version: 5.3.3
47
47
  - !ruby/object:Gem::Dependency
48
- name: rails
48
+ name: json-schema
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: 7.1.2
53
+ version: '4.1'
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 4.1.1
54
57
  type: :runtime
55
58
  prerelease: false
56
59
  version_requirements: !ruby/object:Gem::Requirement
57
60
  requirements:
58
61
  - - "~>"
59
62
  - !ruby/object:Gem::Version
60
- version: 7.1.2
63
+ version: '4.1'
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 4.1.1
61
67
  - !ruby/object:Gem::Dependency
62
- name: generator_spec
68
+ name: kaminari
63
69
  requirement: !ruby/object:Gem::Requirement
64
70
  requirements:
65
71
  - - "~>"
66
72
  - !ruby/object:Gem::Version
67
- version: 0.10.0
68
- type: :development
73
+ version: '1.2'
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 1.2.2
77
+ type: :runtime
69
78
  prerelease: false
70
79
  version_requirements: !ruby/object:Gem::Requirement
71
80
  requirements:
72
81
  - - "~>"
73
82
  - !ruby/object:Gem::Version
74
- version: 0.10.0
83
+ version: '1.2'
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: 1.2.2
75
87
  - !ruby/object:Gem::Dependency
76
- name: rspec-rails
88
+ name: rails
77
89
  requirement: !ruby/object:Gem::Requirement
78
90
  requirements:
79
91
  - - "~>"
80
92
  - !ruby/object:Gem::Version
81
- version: '6.1'
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- version: 6.1.1
85
- type: :development
93
+ version: 7.1.2
94
+ type: :runtime
86
95
  prerelease: false
87
96
  version_requirements: !ruby/object:Gem::Requirement
88
97
  requirements:
89
98
  - - "~>"
90
99
  - !ruby/object:Gem::Version
91
- version: '6.1'
92
- - - ">="
93
- - !ruby/object:Gem::Version
94
- version: 6.1.1
100
+ version: 7.1.2
95
101
  - !ruby/object:Gem::Dependency
96
- name: rspec-mocks
102
+ name: sassc-rails
97
103
  requirement: !ruby/object:Gem::Requirement
98
104
  requirements:
99
105
  - - "~>"
100
106
  - !ruby/object:Gem::Version
101
- version: '3.13'
102
- type: :development
107
+ version: '2.1'
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: 2.1.2
111
+ type: :runtime
103
112
  prerelease: false
104
113
  version_requirements: !ruby/object:Gem::Requirement
105
114
  requirements:
106
115
  - - "~>"
107
116
  - !ruby/object:Gem::Version
108
- version: '3.13'
117
+ version: '2.1'
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: 2.1.2
109
121
  - !ruby/object:Gem::Dependency
110
122
  name: sqlite3
111
123
  requirement: !ruby/object:Gem::Requirement
@@ -141,7 +153,7 @@ dependencies:
141
153
  - !ruby/object:Gem::Version
142
154
  version: 1.9.2
143
155
  - !ruby/object:Gem::Dependency
144
- name: factory_bot
156
+ name: factory_bot_rails
145
157
  requirement: !ruby/object:Gem::Requirement
146
158
  requirements:
147
159
  - - "~>"
@@ -149,7 +161,7 @@ dependencies:
149
161
  version: '6.4'
150
162
  - - ">="
151
163
  - !ruby/object:Gem::Version
152
- version: 6.4.6
164
+ version: 6.4.3
153
165
  type: :development
154
166
  prerelease: false
155
167
  version_requirements: !ruby/object:Gem::Requirement
@@ -159,7 +171,41 @@ dependencies:
159
171
  version: '6.4'
160
172
  - - ">="
161
173
  - !ruby/object:Gem::Version
162
- version: 6.4.6
174
+ version: 6.4.3
175
+ - !ruby/object:Gem::Dependency
176
+ name: faker
177
+ requirement: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: '3.4'
182
+ - - ">="
183
+ - !ruby/object:Gem::Version
184
+ version: 3.4.1
185
+ type: :development
186
+ prerelease: false
187
+ version_requirements: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - "~>"
190
+ - !ruby/object:Gem::Version
191
+ version: '3.4'
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: 3.4.1
195
+ - !ruby/object:Gem::Dependency
196
+ name: mocha
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: '2.4'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '2.4'
163
209
  - !ruby/object:Gem::Dependency
164
210
  name: rubocop
165
211
  requirement: !ruby/object:Gem::Requirement
@@ -193,100 +239,68 @@ executables: []
193
239
  extensions: []
194
240
  extra_rdoc_files: []
195
241
  files:
196
- - ".document"
197
- - ".nojekyll"
198
- - ".rspec"
199
- - ".rspec_status"
200
242
  - ".rubocop.yml"
201
243
  - ".vscode/commands.json"
202
244
  - ".vscode/terminals.json"
203
245
  - CHANGELOG.md
246
+ - CHEAT_SHEET.md
204
247
  - CODE_OF_CONDUCT.md
205
- - CONSIDERTIONS.md
206
- - GETTING-STARTED.md
207
- - LICENSE.txt
208
- - PAYLOAD_EXAMPLE.md
248
+ - MIT-LICENSE
209
249
  - README.md
210
- - ROADMAP.md
211
250
  - Rakefile
212
- - docs/LoggableActivity.html
213
- - docs/LoggableActivity/Activity.html
214
- - docs/LoggableActivity/Configuration.html
215
- - docs/LoggableActivity/ConfigurationError.html
216
- - docs/LoggableActivity/DataOwner.html
217
- - docs/LoggableActivity/Encryption.html
218
- - docs/LoggableActivity/EncryptionError.html
219
- - docs/LoggableActivity/EncryptionKey.html
220
- - docs/LoggableActivity/Error.html
221
- - docs/LoggableActivity/Hooks.html
222
- - docs/LoggableActivity/Payload.html
223
- - docs/LoggableActivity/Services.html
224
- - docs/LoggableActivity/Services/BasePayloadsBuilder.html
225
- - docs/LoggableActivity/Services/DestroyPayloadsBuilder.html
226
- - docs/LoggableActivity/Services/PayloadsBuilder.html
227
- - docs/LoggableActivity/Services/UpdatePayloadsBuilder.html
228
- - docs/created.rid
229
- - docs/css/fonts.css
230
- - docs/css/rdoc.css
231
- - docs/fonts/Lato-Light.ttf
232
- - docs/fonts/Lato-LightItalic.ttf
233
- - docs/fonts/Lato-Regular.ttf
234
- - docs/fonts/Lato-RegularItalic.ttf
235
- - docs/fonts/SourceCodePro-Bold.ttf
236
- - docs/fonts/SourceCodePro-Regular.ttf
237
- - docs/images/add.png
238
- - docs/images/arrow_up.png
239
- - docs/images/brick.png
240
- - docs/images/brick_link.png
241
- - docs/images/bug.png
242
- - docs/images/bullet_black.png
243
- - docs/images/bullet_toggle_minus.png
244
- - docs/images/bullet_toggle_plus.png
245
- - docs/images/date.png
246
- - docs/images/delete.png
247
- - docs/images/find.png
248
- - docs/images/loadingAnimation.gif
249
- - docs/images/macFFBgHack.png
250
- - docs/images/package.png
251
- - docs/images/page_green.png
252
- - docs/images/page_white_text.png
253
- - docs/images/page_white_width.png
254
- - docs/images/plugin.png
255
- - docs/images/ruby.png
256
- - docs/images/tag_blue.png
257
- - docs/images/tag_green.png
258
- - docs/images/transparent.png
259
- - docs/images/wrench.png
260
- - docs/images/wrench_orange.png
261
- - docs/images/zoom.png
262
- - docs/index.html
263
- - docs/js/darkfish.js
264
- - docs/js/navigation.js
265
- - docs/js/navigation.js.gz
266
- - docs/js/search.js
267
- - docs/js/search_index.js
268
- - docs/js/search_index.js.gz
269
- - docs/js/searcher.js
270
- - docs/js/searcher.js.gz
271
- - docs/table_of_contents.html
272
- - help/loggable_activity_help.txt
273
- - lib/generators/.DS_Store
274
- - lib/generators/loggable_activity/.DS_Store
275
- - lib/generators/loggable_activity/install_generator.rb
276
- - lib/generators/loggable_activity/templates/.DS_Store
277
- - lib/generators/loggable_activity/templates/binary_ids/create_loggable_activities.rb
278
- - lib/generators/loggable_activity/templates/config/locales/loggable_activity.en.yml
279
- - lib/generators/loggable_activity/templates/config/loggable_activity.yaml
280
- - lib/generators/loggable_activity/templates/create_loggable_activities.rb
281
- - lib/generators/loggable_activity/templates/current_user.rb
282
- - lib/generators/loggable_activity/templates/loggable_activity.en.yaml
251
+ - app/assets/config/loggable_activity_manifest.js
252
+ - app/assets/images/loggable_activity/.keep
253
+ - app/assets/javascripts/loggable_activity/application.js
254
+ - app/assets/stylesheets/loggable_activity/application.scss
255
+ - app/controllers/concerns/.keep
256
+ - app/controllers/loggable_activity/activities_controller.rb
257
+ - app/controllers/loggable_activity/application_controller.rb
258
+ - app/helpers/loggable_activity/activities_helper.rb
259
+ - app/helpers/loggable_activity/application_helper.rb
260
+ - app/jobs/loggable_activity/application_job.rb
261
+ - app/mailers/loggable_activity/application_mailer.rb
262
+ - app/models/loggable_activity/application_record.rb
263
+ - app/views/kaminari/kaminari-turbo-bootstrap/_first_page.html.erb
264
+ - app/views/kaminari/kaminari-turbo-bootstrap/_gap.html.erb
265
+ - app/views/kaminari/kaminari-turbo-bootstrap/_last_page.html.erb
266
+ - app/views/kaminari/kaminari-turbo-bootstrap/_next_page.html.erb
267
+ - app/views/kaminari/kaminari-turbo-bootstrap/_page.html.erb
268
+ - app/views/kaminari/kaminari-turbo-bootstrap/_paginator.html.erb
269
+ - app/views/kaminari/kaminari-turbo-bootstrap/_prev_page.html.erb
270
+ - app/views/layouts/loggable_activity/application.html.erb
271
+ - app/views/loggable_activity/activities/_activities.html.erb
272
+ - app/views/loggable_activity/activities/index.html.erb
273
+ - app/views/loggable_activity/activities/show.html.erb
274
+ - config/initializers/kaminari_config.rb
275
+ - config/routes.rb
276
+ - db/migrate/20240702092648_create_loggable_activity_tables.rb
277
+ - git-org/HEAD
278
+ - git-org/config
279
+ - git-org/description
280
+ - git-org/hooks/applypatch-msg.sample
281
+ - git-org/hooks/commit-msg.sample
282
+ - git-org/hooks/fsmonitor-watchman.sample
283
+ - git-org/hooks/post-update.sample
284
+ - git-org/hooks/pre-applypatch.sample
285
+ - git-org/hooks/pre-commit.sample
286
+ - git-org/hooks/pre-merge-commit.sample
287
+ - git-org/hooks/pre-push.sample
288
+ - git-org/hooks/pre-rebase.sample
289
+ - git-org/hooks/pre-receive.sample
290
+ - git-org/hooks/prepare-commit-msg.sample
291
+ - git-org/hooks/push-to-checkout.sample
292
+ - git-org/hooks/update.sample
293
+ - git-org/info/exclude
283
294
  - lib/loggable_activity.rb
284
295
  - lib/loggable_activity/.DS_Store
285
296
  - lib/loggable_activity/activity.rb
297
+ - lib/loggable_activity/concerns/current_user.rb
298
+ - lib/loggable_activity/config_schema.json
286
299
  - lib/loggable_activity/configuration.rb
287
300
  - lib/loggable_activity/data_owner.rb
288
301
  - lib/loggable_activity/encryption.rb
289
302
  - lib/loggable_activity/encryption_key.rb
303
+ - lib/loggable_activity/engine.rb
290
304
  - lib/loggable_activity/error.rb
291
305
  - lib/loggable_activity/hooks.rb
292
306
  - lib/loggable_activity/payload.rb
@@ -296,17 +310,15 @@ files:
296
310
  - lib/loggable_activity/services/payloads_builder.rb
297
311
  - lib/loggable_activity/services/update_payloads_builder.rb
298
312
  - lib/loggable_activity/version.rb
299
- - lib/schemas/config_schema.json
300
- - pkg/loggable_activity-0.1.35.gem
301
- - sig/loggable_activity.rbs
313
+ - lib/tasks/loggable_activity_tasks.rake
302
314
  homepage: https://loggableactivity-efe7b931c886.herokuapp.com/
303
315
  licenses:
304
316
  - MIT
305
317
  metadata:
306
318
  homepage_uri: https://loggableactivity-efe7b931c886.herokuapp.com/
307
- source_code_uri: https://github.com/maxgronlund/LoggableActivity
308
- changelog_uri: https://github.com/maxgronlund/LoggableActivity/CHANGELOG.md
309
- documentation_uri: https://maxgronlund.github.io/LoggableActivity/
319
+ source_code_uri: https://github.com/LoggableActivity/LoggableActivity
320
+ changelog_uri: https://github.com/LoggableActivity/LoggableActivity/CHANGELOG.md
321
+ documentation_uri: https://LoggableActivity.github.io/LoggableActivity/
310
322
  rubygems_mfa_required: 'true'
311
323
  post_install_message:
312
324
  rdoc_options: []
data/.document DELETED
@@ -1 +0,0 @@
1
- lib/loggable_activity
data/.nojekyll DELETED
@@ -1 +0,0 @@
1
- - keep
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
data/CONSIDERTIONS.md DELETED
@@ -1,129 +0,0 @@
1
- # Considerations, Work in progress.
2
- This document is stored here and might deleted<br/>
3
- <br/>
4
- It should be easy to configure and use the *LoggablActivity* without having to collect and format data all over the system.<br/>
5
- It should also be possible to delete a data owner and then all data related to that data owner should be inaccessible.
6
-
7
-
8
- ### Protection of data that belongs to a data owner
9
- One way to protect data in a field is to encrypt it, when requested it can then be decrypted.<br/>
10
- If the data is required permanently deleted all there is to do is to throw away the key.<br/>
11
- Another way is to delete the content in all fields for a given data owner on request.<br/>
12
-
13
- ### Composition of data in a log entry
14
- Lets consider an example with a user, the user has som personal information directly on the users DB Record.
15
- The user also has a relation to an address and the user might have a couple relations to other users, friends family members etc.<br/>
16
- All this is created from one form and when it is submitted we want to log it.
17
- One way of do it is to collect all the data from the DB and pack it into a json payload and submit it to the log, but then we have no control of<br/>
18
- What data is confidential and who it belongs to. So instead lets make some configurations for how data are handled.
19
- <br/>*Example*
20
- ```
21
- ┌──────────────────────┐ ┌──────────────────────┐
22
- │ User │ ┌──▶│ Address │
23
- ├──────────────────────┤ │ ├──────────────────────┤
24
- │name: String │ │ │street: String │
25
- ├──────────────────────┤ │ ├──────────────────────┤
26
- │date_of_birth: Date │ │ │city: String │
27
- ├──────────────────────┤ │ └──────────────────────┘
28
- │address_id: Reference │──┘
29
- ├──────────────────────┤
30
- │system_task_uuid: UUID│
31
- └──────────────────────┘
32
-
33
-
34
- ╱│╲
35
- ┌──────────────────────┐
36
- │ Friend │
37
- ├──────────────────────┤
38
- │user_a_id: Reference │
39
- ├──────────────────────┤
40
- │user_b_id: Reference │
41
- └──────────────────────┘
42
- ```
43
- Then a payload could look like this
44
- ```
45
-
46
- {
47
- user: {
48
- name: Sting
49
- date_of_birth "October 2, 1951"
50
- address: {
51
- street: "some street",
52
- city: "London"
53
- },
54
- friend: [
55
- user: {
56
- name: "Bob"
57
- date_of_birth: "September 01, 1991
58
- }
59
- ]
60
- }
61
- }
62
- ```
63
- But what about Bob, he is in the system and want to have control of his own data.<br/>
64
- To achieve this we need to organize the way we store log entries so owners can be identified even within a payload.
65
- ```
66
- ┌────────────────────────┐
67
- │ Activity │
68
- ├────────────────────────┤
69
- │key: String │
70
- ├────────────────────────┤
71
- │who_did_it_type: String │
72
- ├────────────────────────┤
73
- │who_did_it_id: UUID │
74
- ├────────────────────────┤
75
- │time: DateTime │
76
- └────────────────────────┘
77
-
78
-
79
-
80
- ╱│╲
81
- ┌────────────────────────┐
82
- │ Payload │
83
- ├────────────────────────┤
84
- │data: Json │
85
- ├────────────────────────┤
86
- │record_id: UUID │
87
- ├────────────────────────┤
88
- │record_type: String │
89
- └────────────────────────┘
90
- ```
91
- So now we can control access to Bobs data in the Logging DB
92
-
93
- ### example of how a `Loggable::Activity` is formatted for the view
94
- ```
95
- activity = Loggable::Activity.lastest.last
96
- activity.attrs ==>
97
-
98
- payloads: [
99
- primary: {
100
- name: "User",
101
- changes: {
102
- attrs: {
103
- first_name: {
104
- from: "Bob",
105
- to: "Rob"
106
- }
107
- }
108
- }
109
- }
110
- relations: [
111
- name: "Demo::Address
112
- changes: {
113
- street: {
114
- from: "5th Avenue",
115
- to: "Broadway"
116
- }
117
- }
118
- ]
119
- ]
120
-
121
-
122
- ```
123
-
124
-
125
-
126
-
127
-
128
-
129
-
data/GETTING-STARTED.md DELETED
@@ -1,119 +0,0 @@
1
- # Getting started
2
- This document should you getting started with `LoggableActivity`
3
-
4
- ## Prerequisite
5
- 1 A running Rails Application<br/>
6
- 2 An authorization system where there is a current user available.
7
-
8
- ## Demo Application
9
- You can download a demo application from<br/>
10
- [https://github.com/maxgronlund/LoggableActivityDemoApp](https://github.com/maxgronlund/LoggableActivityDemoApp)
11
- <br/>
12
- You can try a demo here<br/>
13
- [https://loggableactivity-efe7b931c886.herokuapp.com/](https://loggableactivity-efe7b931c886.herokuapp.com/)
14
-
15
- ## Getting started
16
- First we add the loggable_activity gem to the Gemfile `gem 'loggable_activity', '~> x.x.xx'` and then<br/>
17
- ```
18
- $ bundle install
19
- ```
20
- Then we have to generate some migrations and additionals files<br/>
21
- ```
22
- $ rails generate loggable_activity:install
23
- ```
24
- This will install the following files
25
- - app/controllers/concerns/loggable_activity/current_user.rb
26
- - config/loggable_activity.yml
27
- - config/locales/loggable_activity.en.yml
28
- - db/migrate/xxxxxxxxxxxxxx_create_loggable_activities
29
-
30
-
31
- ## Add hoks to models to be logged
32
- ```
33
- class User < ApplicationRecord
34
- include LoggableActivity::Hooks
35
- ```
36
-
37
- ## Configuration
38
- Update `config/application.rb`, you might do it differently in production
39
- ```
40
- config.loggable_activity = ActiveSupport::OrderedOptions.new
41
- config.loggable_activity.actor_display_name = :full_name
42
- config.loggable_activity.current_user_model_name = 'User'
43
- ::LoggableActivity::Configuration.load_config_file('config/loggable_activity.yaml')
44
- ```
45
- - actor_display_name: this is a method on the User model we want to use when presenting the actor.
46
- - current_user_model: This is the name of the model we use for current_user
47
- - load_config_file: this is the configuration we will look at next.
48
-
49
- ## loggable_activity.yaml
50
- You have to update the configuration file installed inside the `config/loggable_activity.yaml`
51
- This file defines:
52
- - What fields in a table to log
53
- - What relations to include in a logged activity
54
- - What should happen to the aggregation if a record is deleted.
55
- - What actions to log automatically
56
-
57
- **!Catch**<br/>
58
- `show` can not `auto_log` so it has to be handled manually, more about that later.<br/>
59
- *Here is an example of content for the config/loggable_activity.yaml file*
60
- ```
61
- Demo::Club:
62
- record_display_name: email
63
- route: show_demo_club
64
- loggable_attrs:
65
- - email
66
- - name
67
- auto_log:
68
- - create
69
- - update
70
- - destroy
71
- relations:
72
- - belongs_to: :address
73
- model: Demo::Address
74
- route: show_address
75
- loggable_attrs:
76
- - street
77
- - city
78
- ```
79
-
80
- Lets break this down.
81
- - First we can se that we are logging a model named Demo::Club.
82
- - `record_display_name:` is the field/method on the on the model we want to display as a headline in the log
83
- - `route` is a flag used to generate a link to the model logged, more on that later.
84
- - Then we can se that we are logging the `email` and `name`.
85
- - Then we can se that we are logging `create`, `update`, and `destroy` automatically.
86
- - Then there are some relations: that we want to collect and add to the log.<br/>
87
- In this example the club belongs to an address so we add the street and city from the address to the log.
88
-
89
-
90
- ## Set current user
91
- Add a this to the application_controller.rb
92
- ```
93
- class ApplicationController < ActionController::Base
94
- include LoggableActivity::CurrentUser
95
- ```
96
- If there is not current_user nothing will be logged. <br/>
97
- You can look inside `app/controllers/concerns/current_user.rb` and alter it with a default `current_user` if needed.
98
-
99
- ## Log the show action
100
- As mentioned earlier, show can not be logged automatically<br/>
101
- If you want to log the show action you can add this to your controllers show method
102
- ```
103
- def show
104
- @user.log(:show)
105
- ```
106
-
107
- ## Relations
108
- Supported relations at the moment is
109
- - belongs_to
110
- - has_one
111
- - has_many
112
-
113
-
114
-
115
- ## For developers and contributors
116
- If you can download and play around with a demo app
117
- - 1 Down the demo project from [demo project on github](https://github.com/maxgronlund/LoggableActivityDemoApp)
118
- - 2 Update the Gemfile in the demo project so it points to your localhost.
119
- - 3 you can now build and test you version of the gem `$ gem build loggable_activity.gemspec`
data/LICENSE.txt DELETED
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2024 Max Groenlund
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.