xolo-server 1.0.0 → 2.0.2

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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +42 -4
  3. data/bin/xoloserver +3 -0
  4. data/data/client/xolo +1233 -0
  5. data/lib/optimist_with_insert_blanks.rb +1216 -0
  6. data/lib/xolo/core/base_classes/configuration.rb +238 -0
  7. data/lib/xolo/core/base_classes/server_object.rb +112 -0
  8. data/lib/xolo/core/base_classes/title.rb +884 -0
  9. data/lib/xolo/core/base_classes/version.rb +641 -0
  10. data/lib/xolo/core/constants.rb +85 -0
  11. data/lib/xolo/core/exceptions.rb +52 -0
  12. data/lib/xolo/core/json_wrappers.rb +43 -0
  13. data/lib/xolo/core/loading.rb +59 -0
  14. data/lib/xolo/core/output.rb +292 -0
  15. data/lib/xolo/core/security_cmd.rb +128 -0
  16. data/lib/xolo/core/version.rb +21 -0
  17. data/lib/xolo/core.rb +47 -0
  18. data/lib/xolo/server/app.rb +7 -0
  19. data/lib/xolo/server/configuration.rb +243 -38
  20. data/lib/xolo/server/constants.rb +10 -0
  21. data/lib/xolo/server/helpers/auth.rb +19 -2
  22. data/lib/xolo/server/helpers/autopkg.rb +157 -0
  23. data/lib/xolo/server/helpers/client_data.rb +90 -60
  24. data/lib/xolo/server/helpers/file_transfers.rb +412 -82
  25. data/lib/xolo/server/helpers/jamf_pro.rb +31 -7
  26. data/lib/xolo/server/helpers/log.rb +2 -0
  27. data/lib/xolo/server/helpers/maintenance.rb +1 -0
  28. data/lib/xolo/server/helpers/notification.rb +4 -3
  29. data/lib/xolo/server/helpers/pkg_signing.rb +16 -12
  30. data/lib/xolo/server/helpers/progress_streaming.rb +9 -12
  31. data/lib/xolo/server/helpers/subscriptions.rb +119 -0
  32. data/lib/xolo/server/helpers/titles.rb +27 -3
  33. data/lib/xolo/server/helpers/versions.rb +23 -11
  34. data/lib/xolo/server/mixins/changelog.rb +9 -16
  35. data/lib/xolo/server/mixins/title_jamf_access.rb +375 -390
  36. data/lib/xolo/server/mixins/title_ted_access.rb +50 -8
  37. data/lib/xolo/server/mixins/version_jamf_access.rb +118 -129
  38. data/lib/xolo/server/mixins/version_ted_access.rb +34 -4
  39. data/lib/xolo/server/object_locks.rb +2 -1
  40. data/lib/xolo/server/routes/auth.rb +2 -2
  41. data/lib/xolo/server/routes/jamf_pro.rb +11 -1
  42. data/lib/xolo/server/routes/maint.rb +2 -1
  43. data/lib/xolo/server/routes/subscriptions.rb +126 -0
  44. data/lib/xolo/server/routes/title_editor.rb +1 -1
  45. data/lib/xolo/server/routes/titles.rb +26 -11
  46. data/lib/xolo/server/routes/uploads.rb +0 -14
  47. data/lib/xolo/server/routes/versions.rb +14 -13
  48. data/lib/xolo/server/routes.rb +15 -23
  49. data/lib/xolo/server/title.rb +100 -77
  50. data/lib/xolo/server/version.rb +178 -18
  51. data/lib/xolo/server.rb +8 -0
  52. metadata +20 -11
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xolo-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Lasell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-09-28 00:00:00.000000000 Z
11
+ date: 2026-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -152,16 +152,8 @@ dependencies:
152
152
  version: '1.0'
153
153
  description: |
154
154
  == Xolo
155
- Xolo (sorta pronounced 'show-low') is an HTTPS server and set of command-line tools for macOS that provide automatable access to the software deployment and patch management aspects of {Jamf Pro}[https://www.jamf.com/products/jamf-pro/] and the {Jamf Title Editor}[https://learn.jamf.com/en-US/bundle/title-editor/page/About_Title_Editor.html]. It enhances Jamf Pro's abilities in many ways:
155
+ Xolo (sorta pronounced 'show-low') is an HTTPS server and set of command-line tools for macOS that provide automatable access to the software deployment and patch management aspects of {Jamf Pro}[https://www.jamf.com/products/jamf-pro/] and the {Jamf Title Editor}[https://learn.jamf.com/en-US/bundle/title-editor/page/About_Title_Editor.html]. It enhances Jamf Pro's abilities in many ways.
156
156
 
157
- - Management of titles and versions/patches is scriptable and automatable, allowing developers and admins to integrate with CI/CD workflows.
158
- - Simplifies and standardizes the complex, multistep manual process of managing titles and patches using the Title Editor and Patch Management web interfaces.
159
- - Client installs can be performed by remotely via ssh and/or MDM
160
- - Automated pre-release piloting of new versions/patches
161
- - Titles can be expired (auto-uninstalled) after a period of disuse, reclaiming unused licenses.
162
- - And more!
163
-
164
- "Xolo" is the short name for the Mexican hairless dog breed {'xoloitzcuintle'}[https://en.wikipedia.org/wiki/Xoloitzcuintle] (show-low-itz-kwint-leh), as personified by Dante in the 2017 Pixar film _Coco_.
165
157
 
166
158
  The xolo-server gem packages the code needed to run `xoloserver`, the sinatra-based HTTPS server at the heart of Xolo.
167
159
  email: xolo@pixar.com
@@ -175,15 +167,30 @@ files:
175
167
  - LICENSE.txt
176
168
  - README.md
177
169
  - bin/xoloserver
170
+ - data/client/xolo
178
171
  - data/com.pixar.xoloserver.plist
179
172
  - data/uninstall-pkgs-by-id.zsh
173
+ - lib/optimist_with_insert_blanks.rb
180
174
  - lib/xolo-server.rb
175
+ - lib/xolo/core.rb
176
+ - lib/xolo/core/base_classes/configuration.rb
177
+ - lib/xolo/core/base_classes/server_object.rb
178
+ - lib/xolo/core/base_classes/title.rb
179
+ - lib/xolo/core/base_classes/version.rb
180
+ - lib/xolo/core/constants.rb
181
+ - lib/xolo/core/exceptions.rb
182
+ - lib/xolo/core/json_wrappers.rb
183
+ - lib/xolo/core/loading.rb
184
+ - lib/xolo/core/output.rb
185
+ - lib/xolo/core/security_cmd.rb
186
+ - lib/xolo/core/version.rb
181
187
  - lib/xolo/server.rb
182
188
  - lib/xolo/server/app.rb
183
189
  - lib/xolo/server/command_line.rb
184
190
  - lib/xolo/server/configuration.rb
185
191
  - lib/xolo/server/constants.rb
186
192
  - lib/xolo/server/helpers/auth.rb
193
+ - lib/xolo/server/helpers/autopkg.rb
187
194
  - lib/xolo/server/helpers/client_data.rb
188
195
  - lib/xolo/server/helpers/file_transfers.rb
189
196
  - lib/xolo/server/helpers/jamf_pro.rb
@@ -192,6 +199,7 @@ files:
192
199
  - lib/xolo/server/helpers/notification.rb
193
200
  - lib/xolo/server/helpers/pkg_signing.rb
194
201
  - lib/xolo/server/helpers/progress_streaming.rb
202
+ - lib/xolo/server/helpers/subscriptions.rb
195
203
  - lib/xolo/server/helpers/title_editor.rb
196
204
  - lib/xolo/server/helpers/titles.rb
197
205
  - lib/xolo/server/helpers/versions.rb
@@ -206,6 +214,7 @@ files:
206
214
  - lib/xolo/server/routes/auth.rb
207
215
  - lib/xolo/server/routes/jamf_pro.rb
208
216
  - lib/xolo/server/routes/maint.rb
217
+ - lib/xolo/server/routes/subscriptions.rb
209
218
  - lib/xolo/server/routes/title_editor.rb
210
219
  - lib/xolo/server/routes/titles.rb
211
220
  - lib/xolo/server/routes/uploads.rb