omni_events 0.1.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 2caaeb96652f7dbdeac0fc6c7583da8615fcea14a40225b3b28adde430d02b0b
4
+ data.tar.gz: 10471dfe89783b680fed46b1a23ad43690839bb498c06976cac02b287cf37f60
5
+ SHA512:
6
+ metadata.gz: f07f5e03902c7075f6af33439180c9784029fd710bdcc8446310bee1643527d9702d94f26175b87306b5033141136fbdd224baa858fa5f13da8e6e2c40537f58
7
+ data.tar.gz: e596dc15db7d4061b8e63143ca59ea5592088a0376a243276628161ec8f2072bbd54427cf89d73d8691ee4164412fd9c1fb7395da66ea34e4bc4bd41e68b3a5e
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/CHANGELOG.md ADDED
@@ -0,0 +1,25 @@
1
+ ## [Unreleased]
2
+
3
+ ## [0.1.1] - 2026-03-30
4
+
5
+ ### Added
6
+ - `OmniEvent::Notifier` model — manages webhook clients with token auth and IP whitelisting
7
+ - `OmniEvent::ReceiverController` — HTTP endpoint (`POST /omni_events/receiver/:token`) to receive webhooks
8
+ - `OmniEvent::ProcessDispatcher` — routes each `WebhookEvent` to its registered processor class
9
+ - `OmniEvent::ProcessWebhookJob` — ActiveJob for async webhook processing
10
+ - `OmniEvent::NewRelicJob` — ActiveJob that dispatches log telemetry to New Relic Insights
11
+ - `OmniEvent::ApplicationRecord` — base class for all engine models (proper engine isolation)
12
+ - Database migrations for `omni_event_notifiers`, `omni_event_webhook_events`, and `omni_event_logs`
13
+ - `config.processors` — registry to map notifier names to processor classes
14
+ - `rake omni_event:cleanup` — deletes records older than `retention_days`
15
+ - `spec/dummy` — minimal Rails app enabling full model/job integration tests
16
+ - `serialize :metadata / :headers / :payload` — SQLite compatibility for development/testing
17
+
18
+ ### Changed
19
+ - `OmniEvent::WebhookEvent` and `OmniEvent::Log` now inherit from `OmniEvent::ApplicationRecord`
20
+ - Install generator post-install message now includes all setup steps
21
+ - `spec_helper` supports both unit mode (default, no DB) and integration mode (`INTEGRATION=1`)
22
+
23
+ ## [0.1.0] - 2026-03-30
24
+
25
+ - Initial release
@@ -0,0 +1,10 @@
1
+ # Code of Conduct
2
+
3
+ "omni_event" follows [The Ruby Community Conduct Guideline](https://www.ruby-lang.org/en/conduct) in all "collaborative space", which is defined as community communications channels (such as mailing lists, submitted patches, commit comments, etc.):
4
+
5
+ * Participants will be tolerant of opposing views.
6
+ * Participants must ensure that their language and actions are free of personal attacks and disparaging personal remarks.
7
+ * When interpreting the words and actions of others, participants should always assume good intentions.
8
+ * Behaviour which can be reasonably considered harassment will not be tolerated.
9
+
10
+ If you have any concerns about behaviour within this project, please contact us at ["TODO: Write your email address"](mailto:"TODO: Write your email address").
data/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gemspec
6
+
7
+ gem "irb"
8
+ gem "rake", "~> 13.0"
9
+
10
+ gem "rspec", "~> 3.0"
11
+ gem "rspec-rails", "~> 6.0"
12
+ gem "sqlite3", "~> 1.6"
13
+ gem "factory_bot_rails"
data/Gemfile.lock ADDED
@@ -0,0 +1,249 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ omni_event (0.1.0)
5
+ httparty (~> 0.21)
6
+ rails (>= 6.1)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ action_text-trix (2.1.18)
12
+ railties
13
+ actioncable (8.1.3)
14
+ actionpack (= 8.1.3)
15
+ activesupport (= 8.1.3)
16
+ nio4r (~> 2.0)
17
+ websocket-driver (>= 0.6.1)
18
+ zeitwerk (~> 2.6)
19
+ actionmailbox (8.1.3)
20
+ actionpack (= 8.1.3)
21
+ activejob (= 8.1.3)
22
+ activerecord (= 8.1.3)
23
+ activestorage (= 8.1.3)
24
+ activesupport (= 8.1.3)
25
+ mail (>= 2.8.0)
26
+ actionmailer (8.1.3)
27
+ actionpack (= 8.1.3)
28
+ actionview (= 8.1.3)
29
+ activejob (= 8.1.3)
30
+ activesupport (= 8.1.3)
31
+ mail (>= 2.8.0)
32
+ rails-dom-testing (~> 2.2)
33
+ actionpack (8.1.3)
34
+ actionview (= 8.1.3)
35
+ activesupport (= 8.1.3)
36
+ nokogiri (>= 1.8.5)
37
+ rack (>= 2.2.4)
38
+ rack-session (>= 1.0.1)
39
+ rack-test (>= 0.6.3)
40
+ rails-dom-testing (~> 2.2)
41
+ rails-html-sanitizer (~> 1.6)
42
+ useragent (~> 0.16)
43
+ actiontext (8.1.3)
44
+ action_text-trix (~> 2.1.15)
45
+ actionpack (= 8.1.3)
46
+ activerecord (= 8.1.3)
47
+ activestorage (= 8.1.3)
48
+ activesupport (= 8.1.3)
49
+ globalid (>= 0.6.0)
50
+ nokogiri (>= 1.8.5)
51
+ actionview (8.1.3)
52
+ activesupport (= 8.1.3)
53
+ builder (~> 3.1)
54
+ erubi (~> 1.11)
55
+ rails-dom-testing (~> 2.2)
56
+ rails-html-sanitizer (~> 1.6)
57
+ activejob (8.1.3)
58
+ activesupport (= 8.1.3)
59
+ globalid (>= 0.3.6)
60
+ activemodel (8.1.3)
61
+ activesupport (= 8.1.3)
62
+ activerecord (8.1.3)
63
+ activemodel (= 8.1.3)
64
+ activesupport (= 8.1.3)
65
+ timeout (>= 0.4.0)
66
+ activestorage (8.1.3)
67
+ actionpack (= 8.1.3)
68
+ activejob (= 8.1.3)
69
+ activerecord (= 8.1.3)
70
+ activesupport (= 8.1.3)
71
+ marcel (~> 1.0)
72
+ activesupport (8.1.3)
73
+ base64
74
+ bigdecimal
75
+ concurrent-ruby (~> 1.0, >= 1.3.1)
76
+ connection_pool (>= 2.2.5)
77
+ drb
78
+ i18n (>= 1.6, < 2)
79
+ json
80
+ logger (>= 1.4.2)
81
+ minitest (>= 5.1)
82
+ securerandom (>= 0.3)
83
+ tzinfo (~> 2.0, >= 2.0.5)
84
+ uri (>= 0.13.1)
85
+ base64 (0.3.0)
86
+ bigdecimal (4.1.0)
87
+ builder (3.3.0)
88
+ concurrent-ruby (1.3.6)
89
+ connection_pool (3.0.2)
90
+ crass (1.0.6)
91
+ csv (3.3.5)
92
+ date (3.5.1)
93
+ diff-lcs (1.6.2)
94
+ drb (2.2.3)
95
+ erb (6.0.2)
96
+ erubi (1.13.1)
97
+ factory_bot (6.5.6)
98
+ activesupport (>= 6.1.0)
99
+ factory_bot_rails (6.5.1)
100
+ factory_bot (~> 6.5)
101
+ railties (>= 6.1.0)
102
+ globalid (1.3.0)
103
+ activesupport (>= 6.1)
104
+ httparty (0.24.2)
105
+ csv
106
+ mini_mime (>= 1.0.0)
107
+ multi_xml (>= 0.5.2)
108
+ i18n (1.14.8)
109
+ concurrent-ruby (~> 1.0)
110
+ io-console (0.8.2)
111
+ irb (1.17.0)
112
+ pp (>= 0.6.0)
113
+ prism (>= 1.3.0)
114
+ rdoc (>= 4.0.0)
115
+ reline (>= 0.4.2)
116
+ json (2.19.3)
117
+ logger (1.7.0)
118
+ loofah (2.25.1)
119
+ crass (~> 1.0.2)
120
+ nokogiri (>= 1.12.0)
121
+ mail (2.9.0)
122
+ logger
123
+ mini_mime (>= 0.1.1)
124
+ net-imap
125
+ net-pop
126
+ net-smtp
127
+ marcel (1.1.0)
128
+ mini_mime (1.1.5)
129
+ minitest (6.0.2)
130
+ drb (~> 2.0)
131
+ prism (~> 1.5)
132
+ multi_xml (0.8.1)
133
+ bigdecimal (>= 3.1, < 5)
134
+ net-imap (0.6.3)
135
+ date
136
+ net-protocol
137
+ net-pop (0.1.2)
138
+ net-protocol
139
+ net-protocol (0.2.2)
140
+ timeout
141
+ net-smtp (0.5.1)
142
+ net-protocol
143
+ nio4r (2.7.5)
144
+ nokogiri (1.19.2-x86_64-linux-gnu)
145
+ racc (~> 1.4)
146
+ pp (0.6.3)
147
+ prettyprint
148
+ prettyprint (0.2.0)
149
+ prism (1.9.0)
150
+ psych (5.3.1)
151
+ date
152
+ stringio
153
+ racc (1.8.1)
154
+ rack (3.2.5)
155
+ rack-session (2.1.1)
156
+ base64 (>= 0.1.0)
157
+ rack (>= 3.0.0)
158
+ rack-test (2.2.0)
159
+ rack (>= 1.3)
160
+ rackup (2.3.1)
161
+ rack (>= 3)
162
+ rails (8.1.3)
163
+ actioncable (= 8.1.3)
164
+ actionmailbox (= 8.1.3)
165
+ actionmailer (= 8.1.3)
166
+ actionpack (= 8.1.3)
167
+ actiontext (= 8.1.3)
168
+ actionview (= 8.1.3)
169
+ activejob (= 8.1.3)
170
+ activemodel (= 8.1.3)
171
+ activerecord (= 8.1.3)
172
+ activestorage (= 8.1.3)
173
+ activesupport (= 8.1.3)
174
+ bundler (>= 1.15.0)
175
+ railties (= 8.1.3)
176
+ rails-dom-testing (2.3.0)
177
+ activesupport (>= 5.0.0)
178
+ minitest
179
+ nokogiri (>= 1.6)
180
+ rails-html-sanitizer (1.7.0)
181
+ loofah (~> 2.25)
182
+ nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
183
+ railties (8.1.3)
184
+ actionpack (= 8.1.3)
185
+ activesupport (= 8.1.3)
186
+ irb (~> 1.13)
187
+ rackup (>= 1.0.0)
188
+ rake (>= 12.2)
189
+ thor (~> 1.0, >= 1.2.2)
190
+ tsort (>= 0.2)
191
+ zeitwerk (~> 2.6)
192
+ rake (13.3.1)
193
+ rdoc (7.2.0)
194
+ erb
195
+ psych (>= 4.0.0)
196
+ tsort
197
+ reline (0.6.3)
198
+ io-console (~> 0.5)
199
+ rspec (3.13.2)
200
+ rspec-core (~> 3.13.0)
201
+ rspec-expectations (~> 3.13.0)
202
+ rspec-mocks (~> 3.13.0)
203
+ rspec-core (3.13.6)
204
+ rspec-support (~> 3.13.0)
205
+ rspec-expectations (3.13.5)
206
+ diff-lcs (>= 1.2.0, < 2.0)
207
+ rspec-support (~> 3.13.0)
208
+ rspec-mocks (3.13.8)
209
+ diff-lcs (>= 1.2.0, < 2.0)
210
+ rspec-support (~> 3.13.0)
211
+ rspec-rails (8.0.4)
212
+ actionpack (>= 7.2)
213
+ activesupport (>= 7.2)
214
+ railties (>= 7.2)
215
+ rspec-core (>= 3.13.0, < 5.0.0)
216
+ rspec-expectations (>= 3.13.0, < 5.0.0)
217
+ rspec-mocks (>= 3.13.0, < 5.0.0)
218
+ rspec-support (>= 3.13.0, < 5.0.0)
219
+ rspec-support (3.13.7)
220
+ securerandom (0.4.1)
221
+ sqlite3 (2.9.2-x86_64-linux-gnu)
222
+ stringio (3.2.0)
223
+ thor (1.5.0)
224
+ timeout (0.6.1)
225
+ tsort (0.2.0)
226
+ tzinfo (2.0.6)
227
+ concurrent-ruby (~> 1.0)
228
+ uri (1.1.1)
229
+ useragent (0.16.11)
230
+ websocket-driver (0.8.0)
231
+ base64
232
+ websocket-extensions (>= 0.1.0)
233
+ websocket-extensions (0.1.5)
234
+ zeitwerk (2.7.5)
235
+
236
+ PLATFORMS
237
+ x86_64-linux
238
+
239
+ DEPENDENCIES
240
+ factory_bot_rails
241
+ irb
242
+ omni_event!
243
+ rake (~> 13.0)
244
+ rspec (~> 3.0)
245
+ rspec-rails
246
+ sqlite3
247
+
248
+ BUNDLED WITH
249
+ 2.4.10
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2026 Antonio Neto
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.