two_percent 0.4.0 → 1.0.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 +4 -4
- data/Rakefile +5 -1
- data/app/controllers/two_percent/application_controller.rb +79 -1
- data/app/controllers/two_percent/bulk_controller.rb +18 -2
- data/app/controllers/two_percent/scim_controller.rb +201 -9
- data/app/models/two_percent/application_record.rb +7 -0
- data/app/models/two_percent/scim_group.rb +182 -0
- data/app/models/two_percent/scim_group_membership.rb +29 -0
- data/app/models/two_percent/scim_user.rb +138 -0
- data/lib/generators/two_percent/install/install_generator.rb +46 -0
- data/lib/generators/two_percent/install/templates/INSTALL_README +84 -0
- data/lib/generators/two_percent/install/templates/create_two_percent_scim_group_memberships.rb.erb +20 -0
- data/lib/generators/two_percent/install/templates/create_two_percent_scim_groups.rb.erb +24 -0
- data/lib/generators/two_percent/install/templates/create_two_percent_scim_users.rb.erb +25 -0
- data/lib/generators/two_percent/install/templates/two_percent.rb.erb +85 -0
- data/lib/two_percent/bulk_processor.rb +145 -5
- data/lib/two_percent/configuration.rb +36 -1
- data/lib/two_percent/domain/events/base_event.rb +27 -0
- data/lib/two_percent/domain/events/group_events.rb +54 -0
- data/lib/two_percent/domain/events/user_events.rb +51 -0
- data/lib/two_percent/domain/events.rb +16 -0
- data/lib/two_percent/domain.rb +8 -0
- data/lib/two_percent/scim/patch_processor.rb +119 -0
- data/lib/two_percent/scim/schema.rb +152 -0
- data/lib/two_percent/scim.rb +8 -0
- data/lib/two_percent/syncable.rb +198 -0
- data/lib/two_percent/version.rb +1 -1
- data/lib/two_percent.rb +7 -1
- metadata +27 -16
- data/app/events/two_percent/application_event.rb +0 -7
- data/app/events/two_percent/create_event.rb +0 -11
- data/app/events/two_percent/delete_event.rb +0 -11
- data/app/events/two_percent/replace_event.rb +0 -12
- data/app/events/two_percent/update_event.rb +0 -12
- data/lib/two_percent/event_handler.rb +0 -26
metadata
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: two_percent
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Carlos Palhares
|
|
8
8
|
- Katie Edgar
|
|
9
9
|
- Dan Smith
|
|
10
|
-
autorequire:
|
|
11
10
|
bindir: bin
|
|
12
11
|
cert_chain: []
|
|
13
|
-
date:
|
|
12
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
14
13
|
dependencies:
|
|
15
14
|
- !ruby/object:Gem::Dependency
|
|
16
15
|
name: aether_observatory
|
|
@@ -40,8 +39,10 @@ dependencies:
|
|
|
40
39
|
- - ">="
|
|
41
40
|
- !ruby/object:Gem::Version
|
|
42
41
|
version: '6.1'
|
|
43
|
-
description:
|
|
44
|
-
|
|
42
|
+
description: TwoPercent is a SCIM 2.0 Rails Engine with partial RFC 7644 protocol
|
|
43
|
+
compliance for IdP provisioning. Supports POST/PUT/PATCH/DELETE/Bulk operations
|
|
44
|
+
for Users and Groups, publishes domain events via AetherObservatory, and integrates
|
|
45
|
+
seamlessly with Rails applications.
|
|
45
46
|
email:
|
|
46
47
|
- carlos.palhares@powerhrg.com
|
|
47
48
|
- katie.weber@powerhrg.com
|
|
@@ -55,18 +56,31 @@ files:
|
|
|
55
56
|
- app/controllers/two_percent/application_controller.rb
|
|
56
57
|
- app/controllers/two_percent/bulk_controller.rb
|
|
57
58
|
- app/controllers/two_percent/scim_controller.rb
|
|
58
|
-
- app/
|
|
59
|
-
- app/
|
|
60
|
-
- app/
|
|
61
|
-
- app/
|
|
62
|
-
- app/events/two_percent/update_event.rb
|
|
59
|
+
- app/models/two_percent/application_record.rb
|
|
60
|
+
- app/models/two_percent/scim_group.rb
|
|
61
|
+
- app/models/two_percent/scim_group_membership.rb
|
|
62
|
+
- app/models/two_percent/scim_user.rb
|
|
63
63
|
- config/routes.rb
|
|
64
|
+
- lib/generators/two_percent/install/install_generator.rb
|
|
65
|
+
- lib/generators/two_percent/install/templates/INSTALL_README
|
|
66
|
+
- lib/generators/two_percent/install/templates/create_two_percent_scim_group_memberships.rb.erb
|
|
67
|
+
- lib/generators/two_percent/install/templates/create_two_percent_scim_groups.rb.erb
|
|
68
|
+
- lib/generators/two_percent/install/templates/create_two_percent_scim_users.rb.erb
|
|
69
|
+
- lib/generators/two_percent/install/templates/two_percent.rb.erb
|
|
64
70
|
- lib/tasks/two_percent_tasks.rake
|
|
65
71
|
- lib/two_percent.rb
|
|
66
72
|
- lib/two_percent/bulk_processor.rb
|
|
67
73
|
- lib/two_percent/configuration.rb
|
|
74
|
+
- lib/two_percent/domain.rb
|
|
75
|
+
- lib/two_percent/domain/events.rb
|
|
76
|
+
- lib/two_percent/domain/events/base_event.rb
|
|
77
|
+
- lib/two_percent/domain/events/group_events.rb
|
|
78
|
+
- lib/two_percent/domain/events/user_events.rb
|
|
68
79
|
- lib/two_percent/engine.rb
|
|
69
|
-
- lib/two_percent/
|
|
80
|
+
- lib/two_percent/scim.rb
|
|
81
|
+
- lib/two_percent/scim/patch_processor.rb
|
|
82
|
+
- lib/two_percent/scim/schema.rb
|
|
83
|
+
- lib/two_percent/syncable.rb
|
|
70
84
|
- lib/two_percent/version.rb
|
|
71
85
|
homepage: https://github.com/powerhome/power-tools
|
|
72
86
|
licenses:
|
|
@@ -76,7 +90,6 @@ metadata:
|
|
|
76
90
|
source_code_uri: https://github.com/powerhome/power-tools
|
|
77
91
|
changelog_uri: https://github.com/powerhome/power-tools/blob/main/packages/two_percent/docs/CHANGELOG.md
|
|
78
92
|
rubygems_mfa_required: 'true'
|
|
79
|
-
post_install_message:
|
|
80
93
|
rdoc_options: []
|
|
81
94
|
require_paths:
|
|
82
95
|
- lib
|
|
@@ -91,9 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
91
104
|
- !ruby/object:Gem::Version
|
|
92
105
|
version: '0'
|
|
93
106
|
requirements: []
|
|
94
|
-
rubygems_version: 3.
|
|
95
|
-
signing_key:
|
|
107
|
+
rubygems_version: 3.6.9
|
|
96
108
|
specification_version: 4
|
|
97
|
-
summary:
|
|
98
|
-
to observers
|
|
109
|
+
summary: SCIM 2.0 Rails Engine for identity provisioning with domain event publishing
|
|
99
110
|
test_files: []
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module TwoPercent
|
|
4
|
-
class EventHandler
|
|
5
|
-
def self.dispatch(method, **attrs)
|
|
6
|
-
EventHandler.new(method).dispatch(**attrs)
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
METHOD_EVENT = {
|
|
10
|
-
"POST" => "TwoPercent::CreateEvent",
|
|
11
|
-
"PATCH" => "TwoPercent::UpdateEvent",
|
|
12
|
-
"PUT" => "TwoPercent::ReplaceEvent",
|
|
13
|
-
"DELETE" => "TwoPercent::DeleteEvent",
|
|
14
|
-
}.freeze
|
|
15
|
-
|
|
16
|
-
def initialize(method)
|
|
17
|
-
@event = METHOD_EVENT.fetch(method) do
|
|
18
|
-
raise "Invalid method #{method}"
|
|
19
|
-
end.constantize
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def dispatch(**attrs)
|
|
23
|
-
@event.create(**attrs)
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|