ruby-jss 0.6.5 → 0.6.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of ruby-jss might be problematic. Click here for more details.

Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +57 -5
  3. data/lib/jss.rb +78 -94
  4. data/lib/jss/api_connection.rb +8 -0
  5. data/lib/jss/api_object.rb +126 -102
  6. data/lib/jss/api_object/creatable.rb +33 -15
  7. data/lib/jss/api_object/distribution_point.rb +4 -1
  8. data/lib/jss/api_object/extension_attribute.rb +1 -1
  9. data/lib/jss/api_object/package.rb +121 -187
  10. data/lib/jss/api_object/policy.rb +590 -251
  11. data/lib/jss/api_object/script.rb +92 -128
  12. data/lib/jss/api_object/self_servable.rb +93 -117
  13. data/lib/jss/api_object/updatable.rb +12 -27
  14. data/lib/jss/api_object/uploadable.rb +12 -15
  15. data/lib/jss/client.rb +178 -156
  16. data/lib/jss/db_connection.rb +34 -49
  17. data/lib/jss/ruby_extensions/string.rb +25 -21
  18. data/lib/jss/version.rb +1 -1
  19. data/lib/jss/webhooks.rb +52 -0
  20. data/lib/jss/webhooks/README.md +269 -0
  21. data/lib/jss/webhooks/configuration.rb +212 -0
  22. data/lib/jss/webhooks/data/sample_handlers/RestAPIOperation-executable +90 -0
  23. data/lib/jss/webhooks/data/sample_handlers/RestAPIOperation.rb +44 -0
  24. data/lib/jss/webhooks/data/sample_jsons/ComputerAdded.json +27 -0
  25. data/lib/jss/webhooks/data/sample_jsons/ComputerCheckIn.json +27 -0
  26. data/lib/jss/webhooks/data/sample_jsons/ComputerInventoryCompleted.json +27 -0
  27. data/lib/jss/webhooks/data/sample_jsons/ComputerPolicyFinished.json +27 -0
  28. data/lib/jss/webhooks/data/sample_jsons/ComputerPushCapabilityChanged.json +27 -0
  29. data/lib/jss/webhooks/data/sample_jsons/JSSShutdown.json +14 -0
  30. data/lib/jss/webhooks/data/sample_jsons/JSSStartup.json +14 -0
  31. data/lib/jss/webhooks/data/sample_jsons/MobileDeviceCheckIn.json +26 -0
  32. data/lib/jss/webhooks/data/sample_jsons/MobileDeviceCommandCompleted.json +26 -0
  33. data/lib/jss/webhooks/data/sample_jsons/MobileDeviceEnrolled.json +26 -0
  34. data/lib/jss/webhooks/data/sample_jsons/MobileDevicePushSent.json +26 -0
  35. data/lib/jss/webhooks/data/sample_jsons/MobileDeviceUnEnrolled.json +26 -0
  36. data/lib/jss/webhooks/data/sample_jsons/PatchSoftwareTitleUpdated.json +14 -0
  37. data/lib/jss/webhooks/data/sample_jsons/PushSent.json +11 -0
  38. data/lib/jss/webhooks/data/sample_jsons/RestAPIOperation.json +15 -0
  39. data/lib/jss/webhooks/data/sample_jsons/SCEPChallenge.json +10 -0
  40. data/lib/jss/webhooks/data/sample_jsons/SmartGroupComputerMembershipChange.json +13 -0
  41. data/lib/jss/webhooks/data/sample_jsons/SmartGroupMobileDeviceMembershipChange.json +13 -0
  42. data/lib/jss/webhooks/event.rb +138 -0
  43. data/lib/jss/webhooks/event/computer_added.rb +37 -0
  44. data/lib/jss/webhooks/event/computer_check_in.rb +37 -0
  45. data/lib/jss/webhooks/event/computer_inventory_completed.rb +37 -0
  46. data/lib/jss/webhooks/event/computer_policy_finished.rb +37 -0
  47. data/lib/jss/webhooks/event/computer_push_capability_changed.rb +37 -0
  48. data/lib/jss/webhooks/event/handlers.rb +191 -0
  49. data/lib/jss/webhooks/event/jss_shutdown.rb +37 -0
  50. data/lib/jss/webhooks/event/jss_startup.rb +37 -0
  51. data/lib/jss/webhooks/event/mobile_device_check_in.rb +37 -0
  52. data/lib/jss/webhooks/event/mobile_device_command_completed.rb +37 -0
  53. data/lib/jss/webhooks/event/mobile_device_enrolled.rb +37 -0
  54. data/lib/jss/webhooks/event/mobile_device_push_sent.rb +37 -0
  55. data/lib/jss/webhooks/event/mobile_device_unenrolled.rb +37 -0
  56. data/lib/jss/webhooks/event/patch_software_title_updated.rb +37 -0
  57. data/lib/jss/webhooks/event/push_sent.rb +37 -0
  58. data/lib/jss/webhooks/event/rest_api_operation.rb +37 -0
  59. data/lib/jss/webhooks/event/scep_challenge.rb +37 -0
  60. data/lib/jss/webhooks/event/smart_group_computer_membership_change.rb +37 -0
  61. data/lib/jss/webhooks/event/smart_group_mobile_device_membership_change.rb +37 -0
  62. data/lib/jss/webhooks/event/webhook.rb +39 -0
  63. data/lib/jss/webhooks/event_objects.rb +111 -0
  64. data/lib/jss/webhooks/event_objects/computer.rb +48 -0
  65. data/lib/jss/webhooks/event_objects/jss.rb +35 -0
  66. data/lib/jss/webhooks/event_objects/mobile_device.rb +47 -0
  67. data/lib/jss/webhooks/event_objects/patch_software_title_update.rb +37 -0
  68. data/lib/jss/webhooks/event_objects/push.rb +32 -0
  69. data/lib/jss/webhooks/event_objects/rest_api_operation.rb +36 -0
  70. data/lib/jss/webhooks/event_objects/scep_challenge.rb +31 -0
  71. data/lib/jss/webhooks/event_objects/smart_group.rb +34 -0
  72. data/lib/jss/webhooks/server_app.rb +36 -0
  73. data/lib/jss/webhooks/server_app/routes.rb +26 -0
  74. data/lib/jss/webhooks/server_app/routes/handle_webhook_event.rb +38 -0
  75. data/lib/jss/webhooks/server_app/routes/home.rb +36 -0
  76. data/lib/jss/webhooks/server_app/self_signed_cert.rb +64 -0
  77. data/lib/jss/webhooks/server_app/server.rb +59 -0
  78. data/lib/jss/webhooks/version.rb +31 -0
  79. metadata +63 -4
@@ -0,0 +1,64 @@
1
+ ### Copyright 2016 Pixar
2
+ ###
3
+ ### Licensed under the Apache License, Version 2.0 (the "Apache License")
4
+ ### with the following modification; you may not use this file except in
5
+ ### compliance with the Apache License and the following modification to it:
6
+ ### Section 6. Trademarks. is deleted and replaced with:
7
+ ###
8
+ ### 6. Trademarks. This License does not grant permission to use the trade
9
+ ### names, trademarks, service marks, or product names of the Licensor
10
+ ### and its affiliates, except as required to comply with Section 4(c) of
11
+ ### the License and to reproduce the content of the NOTICE file.
12
+ ###
13
+ ### You may obtain a copy of the Apache License at
14
+ ###
15
+ ### http://www.apache.org/licenses/LICENSE-2.0
16
+ ###
17
+ ### Unless required by applicable law or agreed to in writing, software
18
+ ### distributed under the Apache License with the above modification is
19
+ ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
20
+ ### KIND, either express or implied. See the Apache License for the specific
21
+ ### language governing permissions and limitations under the Apache License.
22
+ ###
23
+ ###
24
+
25
+ module JSSWebHooks
26
+
27
+ ### An on-the-fly generated, self-signed ssl certificate with
28
+ ### matching private key.
29
+ ###
30
+ class SelfSignedCert
31
+ require 'openssl'
32
+ DFT_C = "US"
33
+ DFT_ST = "California"
34
+ DFT_L = "Emeryville"
35
+ DFT_O = "Pixar"
36
+ DFT_OU = "MacTeam"
37
+ DFT_CN = "localhost"
38
+
39
+ attr_reader :private_key, :certificate
40
+
41
+ def initialize (args = {})
42
+ args[:c] ||= DFT_C
43
+ args[:st] ||= DFT_ST
44
+ args[:l] ||= DFT_L
45
+ args[:o] ||= DFT_O
46
+ args[:ou] ||= DFT_OU
47
+ args[:cn] ||= DFT_CN
48
+
49
+ name = "/C=#{args[:c]}/ST=#{args[:st]}/L=#{args[:l]}/O=#{args[:o]}/OU=#{args[:ou]}/CN=#{args[:cn]}"
50
+ ca = OpenSSL::X509::Name.parse(name)
51
+ key = OpenSSL::PKey::RSA.new(1024)
52
+ crt = OpenSSL::X509::Certificate.new
53
+ crt.version = 2
54
+ crt.serial = 1
55
+ crt.subject = ca
56
+ crt.issuer = ca
57
+ crt.public_key = key.public_key
58
+ crt.not_before = Time.now
59
+ crt.not_after = Time.now + 1 * 365 * 24 * 60 * 60 # 1 year
60
+ @certificate = crt
61
+ @private_key = key
62
+ end # init
63
+ end # class
64
+ end # module JSSWebHooks
@@ -0,0 +1,59 @@
1
+ ### Copyright 2016 Pixar
2
+ ###
3
+ ### Licensed under the Apache License, Version 2.0 (the "Apache License")
4
+ ### with the following modification; you may not use this file except in
5
+ ### compliance with the Apache License and the following modification to it:
6
+ ### Section 6. Trademarks. is deleted and replaced with:
7
+ ###
8
+ ### 6. Trademarks. This License does not grant permission to use the trade
9
+ ### names, trademarks, service marks, or product names of the Licensor
10
+ ### and its affiliates, except as required to comply with Section 4(c) of
11
+ ### the License and to reproduce the content of the NOTICE file.
12
+ ###
13
+ ### You may obtain a copy of the Apache License at
14
+ ###
15
+ ### http://www.apache.org/licenses/LICENSE-2.0
16
+ ###
17
+ ### Unless required by applicable law or agreed to in writing, software
18
+ ### distributed under the Apache License with the above modification is
19
+ ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
20
+ ### KIND, either express or implied. See the Apache License for the specific
21
+ ### language governing permissions and limitations under the Apache License.
22
+ ###
23
+ ###
24
+
25
+ module JSSWebHooks
26
+
27
+ # Sinatra Server
28
+ class Server < Sinatra::Base
29
+
30
+ DEFAULT_SERVER_ENGINE = :webrick
31
+ DEFAULT_PORT = 8443
32
+
33
+ configure do
34
+ server_engine = JSSWebHooks::CONFIG.server_engine || DEFAULT_SERVER_ENGINE
35
+ server_port = JSSWebHooks::CONFIG.server_port || DEFAULT_PORT
36
+
37
+ set :bind, '0.0.0.0'
38
+ set :server, server_engine
39
+ set :port, server_port
40
+ end
41
+
42
+ # run the server doing any engine-based config along the way
43
+ def self.run!
44
+ super do |server|
45
+ case server
46
+ when WEBrick::HTTPServer
47
+ webrick_ssl_config server
48
+ end # case
49
+ end # do server
50
+ end # run!
51
+
52
+ def self.webrick_ssl_config(_server)
53
+ # TODO: add ssl config
54
+ true
55
+ end
56
+
57
+ end # class
58
+
59
+ end # module
@@ -0,0 +1,31 @@
1
+ ### Copyright 2016 Pixar
2
+ ###
3
+ ### Licensed under the Apache License, Version 2.0 (the "Apache License")
4
+ ### with the following modification; you may not use this file except in
5
+ ### compliance with the Apache License and the following modification to it:
6
+ ### Section 6. Trademarks. is deleted and replaced with:
7
+ ###
8
+ ### 6. Trademarks. This License does not grant permission to use the trade
9
+ ### names, trademarks, service marks, or product names of the Licensor
10
+ ### and its affiliates, except as required to comply with Section 4(c) of
11
+ ### the License and to reproduce the content of the NOTICE file.
12
+ ###
13
+ ### You may obtain a copy of the Apache License at
14
+ ###
15
+ ### http://www.apache.org/licenses/LICENSE-2.0
16
+ ###
17
+ ### Unless required by applicable law or agreed to in writing, software
18
+ ### distributed under the Apache License with the above modification is
19
+ ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
20
+ ### KIND, either express or implied. See the Apache License for the specific
21
+ ### language governing permissions and limitations under the Apache License.
22
+ ###
23
+ ###
24
+
25
+ ###
26
+ module JSSWebHooks
27
+
28
+ ### The version of the JSS WebHooks framework
29
+ VERSION = '0.0.1'
30
+
31
+ end # module
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-jss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5
4
+ version: 0.6.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Lasell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-10 00:00:00.000000000 Z
11
+ date: 2016-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: plist
@@ -170,6 +170,66 @@ files:
170
170
  - lib/jss/server.rb
171
171
  - lib/jss/utility.rb
172
172
  - lib/jss/version.rb
173
+ - lib/jss/webhooks.rb
174
+ - lib/jss/webhooks/README.md
175
+ - lib/jss/webhooks/configuration.rb
176
+ - lib/jss/webhooks/data/sample_handlers/RestAPIOperation-executable
177
+ - lib/jss/webhooks/data/sample_handlers/RestAPIOperation.rb
178
+ - lib/jss/webhooks/data/sample_jsons/ComputerAdded.json
179
+ - lib/jss/webhooks/data/sample_jsons/ComputerCheckIn.json
180
+ - lib/jss/webhooks/data/sample_jsons/ComputerInventoryCompleted.json
181
+ - lib/jss/webhooks/data/sample_jsons/ComputerPolicyFinished.json
182
+ - lib/jss/webhooks/data/sample_jsons/ComputerPushCapabilityChanged.json
183
+ - lib/jss/webhooks/data/sample_jsons/JSSShutdown.json
184
+ - lib/jss/webhooks/data/sample_jsons/JSSStartup.json
185
+ - lib/jss/webhooks/data/sample_jsons/MobileDeviceCheckIn.json
186
+ - lib/jss/webhooks/data/sample_jsons/MobileDeviceCommandCompleted.json
187
+ - lib/jss/webhooks/data/sample_jsons/MobileDeviceEnrolled.json
188
+ - lib/jss/webhooks/data/sample_jsons/MobileDevicePushSent.json
189
+ - lib/jss/webhooks/data/sample_jsons/MobileDeviceUnEnrolled.json
190
+ - lib/jss/webhooks/data/sample_jsons/PatchSoftwareTitleUpdated.json
191
+ - lib/jss/webhooks/data/sample_jsons/PushSent.json
192
+ - lib/jss/webhooks/data/sample_jsons/RestAPIOperation.json
193
+ - lib/jss/webhooks/data/sample_jsons/SCEPChallenge.json
194
+ - lib/jss/webhooks/data/sample_jsons/SmartGroupComputerMembershipChange.json
195
+ - lib/jss/webhooks/data/sample_jsons/SmartGroupMobileDeviceMembershipChange.json
196
+ - lib/jss/webhooks/event.rb
197
+ - lib/jss/webhooks/event/computer_added.rb
198
+ - lib/jss/webhooks/event/computer_check_in.rb
199
+ - lib/jss/webhooks/event/computer_inventory_completed.rb
200
+ - lib/jss/webhooks/event/computer_policy_finished.rb
201
+ - lib/jss/webhooks/event/computer_push_capability_changed.rb
202
+ - lib/jss/webhooks/event/handlers.rb
203
+ - lib/jss/webhooks/event/jss_shutdown.rb
204
+ - lib/jss/webhooks/event/jss_startup.rb
205
+ - lib/jss/webhooks/event/mobile_device_check_in.rb
206
+ - lib/jss/webhooks/event/mobile_device_command_completed.rb
207
+ - lib/jss/webhooks/event/mobile_device_enrolled.rb
208
+ - lib/jss/webhooks/event/mobile_device_push_sent.rb
209
+ - lib/jss/webhooks/event/mobile_device_unenrolled.rb
210
+ - lib/jss/webhooks/event/patch_software_title_updated.rb
211
+ - lib/jss/webhooks/event/push_sent.rb
212
+ - lib/jss/webhooks/event/rest_api_operation.rb
213
+ - lib/jss/webhooks/event/scep_challenge.rb
214
+ - lib/jss/webhooks/event/smart_group_computer_membership_change.rb
215
+ - lib/jss/webhooks/event/smart_group_mobile_device_membership_change.rb
216
+ - lib/jss/webhooks/event/webhook.rb
217
+ - lib/jss/webhooks/event_objects.rb
218
+ - lib/jss/webhooks/event_objects/computer.rb
219
+ - lib/jss/webhooks/event_objects/jss.rb
220
+ - lib/jss/webhooks/event_objects/mobile_device.rb
221
+ - lib/jss/webhooks/event_objects/patch_software_title_update.rb
222
+ - lib/jss/webhooks/event_objects/push.rb
223
+ - lib/jss/webhooks/event_objects/rest_api_operation.rb
224
+ - lib/jss/webhooks/event_objects/scep_challenge.rb
225
+ - lib/jss/webhooks/event_objects/smart_group.rb
226
+ - lib/jss/webhooks/server_app.rb
227
+ - lib/jss/webhooks/server_app/routes.rb
228
+ - lib/jss/webhooks/server_app/routes/handle_webhook_event.rb
229
+ - lib/jss/webhooks/server_app/routes/home.rb
230
+ - lib/jss/webhooks/server_app/self_signed_cert.rb
231
+ - lib/jss/webhooks/server_app/server.rb
232
+ - lib/jss/webhooks/version.rb
173
233
  - lib/ruby-jss.rb
174
234
  homepage: http://pixaranimationstudios.github.io/ruby-jss/
175
235
  licenses:
@@ -196,9 +256,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
256
  version: '0'
197
257
  requirements: []
198
258
  rubyforge_project:
199
- rubygems_version: 2.6.1
259
+ rubygems_version: 2.6.8
200
260
  signing_key:
201
261
  specification_version: 4
202
262
  summary: A Ruby interface to the Casper Suite's JSS API
203
263
  test_files: []
204
- has_rdoc: true