angarium 0.1.0
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 +7 -0
- data/CHANGELOG.md +65 -0
- data/MIT-LICENSE +22 -0
- data/README.md +910 -0
- data/Rakefile +13 -0
- data/SECURITY.md +51 -0
- data/app/assets/config/angarium_manifest.js +1 -0
- data/app/assets/stylesheets/angarium/application.css +15 -0
- data/app/controllers/angarium/api/attempts_controller.rb +12 -0
- data/app/controllers/angarium/api/base_controller.rb +133 -0
- data/app/controllers/angarium/api/deliveries_controller.rb +29 -0
- data/app/controllers/angarium/api/endpoints_controller.rb +117 -0
- data/app/controllers/angarium/api/not_authorized.rb +7 -0
- data/app/controllers/angarium/api/unpermitted_parameter.rb +15 -0
- data/app/helpers/angarium/application_helper.rb +4 -0
- data/app/jobs/angarium/application_job.rb +5 -0
- data/app/jobs/angarium/deliver_job.rb +11 -0
- data/app/models/angarium/application_record.rb +17 -0
- data/app/models/angarium/delivery.rb +254 -0
- data/app/models/angarium/delivery_attempt.rb +14 -0
- data/app/models/angarium/endpoint.rb +217 -0
- data/app/models/angarium/event.rb +7 -0
- data/app/policies/angarium/api/policy.rb +78 -0
- data/app/validators/angarium/endpoint_url_validator.rb +20 -0
- data/app/views/layouts/angarium/application.html.erb +15 -0
- data/config/routes.rb +22 -0
- data/db/angarium_migrate/20260704000001_create_angarium_endpoints.rb +22 -0
- data/db/angarium_migrate/20260704000002_create_angarium_events.rb +9 -0
- data/db/angarium_migrate/20260704000003_create_angarium_deliveries.rb +13 -0
- data/db/angarium_migrate/20260704000004_create_angarium_delivery_attempts.rb +12 -0
- data/lib/angarium/address_policy.rb +82 -0
- data/lib/angarium/client.rb +53 -0
- data/lib/angarium/configuration.rb +66 -0
- data/lib/angarium/dispatch.rb +23 -0
- data/lib/angarium/engine.rb +5 -0
- data/lib/angarium/event_matcher.rb +17 -0
- data/lib/angarium/signature.rb +57 -0
- data/lib/angarium/version.rb +3 -0
- data/lib/angarium.rb +44 -0
- data/lib/generators/angarium/install/install_generator.rb +57 -0
- data/lib/generators/angarium/install/templates/initializer.rb +77 -0
- data/lib/generators/angarium/migrations/migrations_generator.rb +39 -0
- data/lib/generators/angarium/policy/policy_generator.rb +40 -0
- data/lib/generators/angarium/policy/templates/policy.rb +33 -0
- data/lib/tasks/angarium_tasks.rake +15 -0
- metadata +137 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 3b7cf3c384477b5808150336685e858b28eff1e9590f9ec454569019ec8d10bf
|
|
4
|
+
data.tar.gz: 6756a2b028c09b72146f5624e50d08a9ff9f062b4aa7030859548e68d02a5c8d
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: e291f504be94a517d8276d00f0089aec942d104b134ea7a6d907fffe55c7a0914bb38766fc005ac0c6c1faab0bf05e873ee13fa6fcf20b8b558996224cbc9ec2
|
|
7
|
+
data.tar.gz: 676568e4ac7bae762dfc517ba3e3183d2f13a0e8022f8419ed54ded2e0566f2bfb2510c476b4fe3cc84dd150d6f5f0ffdc9d68c3a582272f34e8d0e3e9d4a50b
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project are documented here. The format is based on
|
|
4
|
+
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and Angarium aims to
|
|
5
|
+
follow [Semantic Versioning](https://semver.org). While on 0.x, a minor release
|
|
6
|
+
may include breaking changes; patch releases stay backward compatible.
|
|
7
|
+
|
|
8
|
+
## [0.1.0] - 2026-07-07
|
|
9
|
+
|
|
10
|
+
### Bug Fixes
|
|
11
|
+
|
|
12
|
+
- Make endpoint consecutive_failures counting concurrency-safe
|
|
13
|
+
- Re-check endpoint status before delivering a queued webhook
|
|
14
|
+
- Apply both transition guards independently, not either/or
|
|
15
|
+
- Route the primary database to db/migrate in angarium:migrations
|
|
16
|
+
|
|
17
|
+
### Documentation
|
|
18
|
+
|
|
19
|
+
- README, changelog, security policy, and license
|
|
20
|
+
- Design spec and implementation plan
|
|
21
|
+
- Adopt category-first tagline as the gem summary; expand description
|
|
22
|
+
- Make Configuration scannable as a table; de-snark the comparison
|
|
23
|
+
- Close the trust loop (privileged-attr wording, SECURITY link, versioning policy, gemspec)
|
|
24
|
+
- Point the multi-db README at angarium:install --database
|
|
25
|
+
- Fix README review nits
|
|
26
|
+
- Close the last README review nits
|
|
27
|
+
- Include unverified in the ping status lists
|
|
28
|
+
- Document ActiveSupport::Notifications instrumentation
|
|
29
|
+
|
|
30
|
+
### Features
|
|
31
|
+
|
|
32
|
+
- Configuration object
|
|
33
|
+
- Endpoint, event, delivery, and attempt models
|
|
34
|
+
- SSRF protection for delivery URLs
|
|
35
|
+
- Standard Webhooks HMAC signing and verification
|
|
36
|
+
- Event dispatch and fan-out
|
|
37
|
+
- Signed HTTP delivery with retries, backoff, and Retry-After
|
|
38
|
+
- Recover stranded deliveries and prune attempt history
|
|
39
|
+
- Headless JSON API with policy authorization
|
|
40
|
+
- Install and policy generators
|
|
41
|
+
- Force option to send to a non-enabled endpoint
|
|
42
|
+
- Ping always sends by default; opt out with force: false
|
|
43
|
+
- Unverified endpoint status that a successful ping promotes to enabled
|
|
44
|
+
- Expose endpoint verification through the JSON API
|
|
45
|
+
- Multi-database support via config.connects_to
|
|
46
|
+
- Angarium:install --database=NAME wires up multi-db
|
|
47
|
+
- Angarium:migrations sub-generator, config.database drives multi-db
|
|
48
|
+
- Emit deliver.angarium instrumentation per delivery attempt
|
|
49
|
+
- Emit dispatch.angarium instrumentation with fan-out count
|
|
50
|
+
|
|
51
|
+
### Miscellaneous Tasks
|
|
52
|
+
|
|
53
|
+
- Scaffold mountable engine and test dummy app
|
|
54
|
+
- CI matrix, linting, security scanning, and release tooling
|
|
55
|
+
- Declare solid_queue dev dep, stop tracking sqlite WAL sidecars
|
|
56
|
+
|
|
57
|
+
### Refactoring
|
|
58
|
+
|
|
59
|
+
- Route every status transition through one atomic helper
|
|
60
|
+
- Install multi-db migrations via ActiveRecord::Migration.copy
|
|
61
|
+
- One migration path via angarium:migrations
|
|
62
|
+
- One migration path via angarium:migrations
|
|
63
|
+
- Ship migrations in db/angarium_migrate, drop the rake shim
|
|
64
|
+
|
|
65
|
+
<!-- generated by git-cliff -->
|
data/MIT-LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Stefan Froelich
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|