workos 2.13.0 → 2.15.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e44f2efdf7c26581302bb194d95e2230f64b74f2b0eb30da284f08ceeb15c7e6
4
- data.tar.gz: f759fcbd20ba0faedb50cefd158df2d7f26b8c2ec666692941d70cbb6d7ffbe4
3
+ metadata.gz: 2b01746fa31764bb3e0a381ca2e3dd0bef08a39a9e80db8d5079997e2e392d36
4
+ data.tar.gz: 79ec855c5da2d642a911b7896d353628e837c020a471d70824b39bb510e60d71
5
5
  SHA512:
6
- metadata.gz: f105326800e2c4021c6eca851b550e319cca1a798e78b77dc81e94d23984d34e30ff36421dfd055eb0f1546c0050a46797671d25ab06b952c122813141fe5b18
7
- data.tar.gz: 996ddb5dfc85ab85cfc919ac43a5abcf3a95016a98748fc881802e537723a00e7746fb4c8d1f57fc6bd1f38e56a0eb14e688c9422de591e2e6e5dc17b2daad7a
6
+ metadata.gz: 6aaee86d818a23e40de43f9f5eececdb109fe1fdbba6c4c7a50916e814976ec7a140628415c40aca4d170eb4fd3105125eb8bc4c68ea8ff695f6bb8f91baeea9
7
+ data.tar.gz: c805ad7bf051ebaeb1b5ac485f710d951d5890cd9219adbf32daa3edf653d2baa8e0fb740c550d4e0be9433d7fe6fb355d4130148a66ef9e80f7f73d76bebc66
data/.rubocop.yml CHANGED
@@ -11,7 +11,7 @@ Layout/LineLength:
11
11
  Metrics/BlockLength:
12
12
  ExcludedMethods: ['describe', 'context', 'before']
13
13
  Metrics/MethodLength:
14
- Max: 15
14
+ Max: 30
15
15
  Metrics/ModuleLength:
16
16
  Max: 200
17
17
  Metrics/ParameterLists:
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- workos (2.13.0)
4
+ workos (2.15.0)
5
5
  sorbet-runtime (~> 0.5)
6
6
 
7
7
  GEM
@@ -46,7 +46,9 @@ module WorkOS
46
46
  # @param [String] range_start ISO-8601 datetime
47
47
  # @param [String] range_end ISO-8601 datetime
48
48
  # @param [Array<String>] actions A list of actions to filter by
49
- # @param [Array<String>] actors A list of actor names to filter by
49
+ # @param [Array<String>] @deprecated use `actor_names` instead
50
+ # @param [Array<String>] actor_names A list of actor names to filter by
51
+ # @param [Array<String>] actor_ids A list of actor ids to filter by
50
52
  # @param [Array<String>] targets A list of target types to filter by
51
53
  #
52
54
  # @return [WorkOS::AuditLogExport]
@@ -58,9 +60,12 @@ module WorkOS
58
60
  actions: T.nilable(T::Array[String]),
59
61
  actors: T.nilable(T::Array[String]),
60
62
  targets: T.nilable(T::Array[String]),
63
+ actor_names: T.nilable(T::Array[String]),
64
+ actor_ids: T.nilable(T::Array[String]),
61
65
  ).returns(WorkOS::AuditLogExport)
62
66
  end
63
- def create_export(organization:, range_start:, range_end:, actions: nil, actors: nil, targets: nil)
67
+ def create_export(organization:, range_start:, range_end:, actions: nil, # rubocop:disable Metrics/ParameterLists
68
+ actors: nil, targets: nil, actor_names: nil, actor_ids: nil)
64
69
  body = {
65
70
  organization_id: organization,
66
71
  range_start: range_start,
@@ -69,6 +74,8 @@ module WorkOS
69
74
 
70
75
  body['actions'] = actions unless actions.nil?
71
76
  body['actors'] = actors unless actors.nil?
77
+ body['actor_names'] = actor_names unless actor_names.nil?
78
+ body['actor_ids'] = actor_ids unless actor_ids.nil?
72
79
  body['targets'] = targets unless targets.nil?
73
80
 
74
81
  request = post_request(
@@ -13,7 +13,7 @@ module WorkOS
13
13
  :groups, :custom_attributes, :raw_attributes, :directory_id, :organization_id,
14
14
  :created_at, :updated_at
15
15
 
16
- # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
16
+ # rubocop:disable Metrics/AbcSize
17
17
  sig { params(json: String).void }
18
18
  def initialize(json)
19
19
  raw = parse_json(json)
@@ -36,9 +36,8 @@ module WorkOS
36
36
 
37
37
  replace_without_warning(to_json)
38
38
  end
39
- # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
39
+ # rubocop:enable Metrics/AbcSize
40
40
 
41
- # rubocop:disable Metrics/MethodLength
42
41
  def to_json(*)
43
42
  {
44
43
  id: id,
@@ -58,7 +57,6 @@ module WorkOS
58
57
  updated_at: updated_at,
59
58
  }
60
59
  end
61
- # rubocop:enable Metrics/MethodLength
62
60
 
63
61
  def primary_email
64
62
  primary_email = (emails || []).find { |email| email[:primary] }
@@ -67,7 +65,7 @@ module WorkOS
67
65
 
68
66
  private
69
67
 
70
- # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
68
+ # rubocop:disable Metrics/AbcSize
71
69
  sig do
72
70
  params(
73
71
  json_string: String,
@@ -94,6 +92,6 @@ module WorkOS
94
92
  raw_attributes: hash[:raw_attributes],
95
93
  )
96
94
  end
97
- # rubocop:enable Metrics/MethodLength, Metrics/AbcSize
95
+ # rubocop:enable Metrics/AbcSize
98
96
  end
99
97
  end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+ # typed: true
3
+
4
+ module WorkOS
5
+ # The Event class provides a lightweight wrapper around
6
+ # a WorkOS Event resource. This class is not meant to be instantiated
7
+ # in user space, and is instantiated internally but exposed.
8
+ class Event
9
+ include HashProvider
10
+ extend T::Sig
11
+
12
+ attr_accessor :id, :event, :data, :created_at
13
+
14
+ sig { params(json: String).void }
15
+ def initialize(json)
16
+ raw = parse_json(json)
17
+
18
+ @id = T.let(raw.id, String)
19
+ @event = T.let(raw.event, String)
20
+ @created_at = T.let(raw.created_at, String)
21
+ @data = raw.data
22
+ end
23
+
24
+ def to_json(*)
25
+ {
26
+ id: id,
27
+ event: event,
28
+ data: data,
29
+ created_at: created_at,
30
+ }
31
+ end
32
+
33
+ private
34
+
35
+ sig do
36
+ params(
37
+ json_string: String,
38
+ ).returns(WorkOS::Types::EventStruct)
39
+ end
40
+ def parse_json(json_string)
41
+ hash = JSON.parse(json_string, symbolize_names: true)
42
+
43
+ WorkOS::Types::EventStruct.new(
44
+ id: hash[:id],
45
+ event: hash[:event],
46
+ data: hash[:data],
47
+ created_at: hash[:created_at],
48
+ )
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+ # typed: strict
3
+
4
+ require 'net/http'
5
+
6
+ module WorkOS
7
+ # The Events module provides convenience methods for working with the
8
+ # WorkOS Events platform. You'll need a valid API key and be in the
9
+ # Events beta to be able to access the API
10
+ #
11
+ module Events
12
+ class << self
13
+ extend T::Sig
14
+ include Client
15
+
16
+ # Retrieve events.
17
+ #
18
+ # @param [Hash] options An options hash
19
+ # @option options [String] event The type of event
20
+ # retrieved.
21
+ # @option options [String] limit Maximum number of records to return.
22
+ # @option options [String] after Pagination cursor to receive records
23
+ # after a provided Event ID.
24
+ #
25
+ # @return [Hash]
26
+ sig do
27
+ params(
28
+ options: T::Hash[Symbol, String],
29
+ ).returns(WorkOS::Types::ListStruct)
30
+ end
31
+ def list_events(options = {})
32
+ response = execute_request(
33
+ request: get_request(
34
+ path: '/events',
35
+ auth: true,
36
+ params: options,
37
+ ),
38
+ )
39
+
40
+ parsed_response = JSON.parse(response.body)
41
+ events = parsed_response['data'].map do |event|
42
+ ::WorkOS::Event.new(event.to_json)
43
+ end
44
+
45
+ WorkOS::Types::ListStruct.new(
46
+ data: events,
47
+ list_metadata: parsed_response['listMetadata'],
48
+ )
49
+ end
50
+ end
51
+ end
52
+ end
data/lib/workos/mfa.rb CHANGED
@@ -76,7 +76,6 @@ module WorkOS
76
76
  phone_number: T.nilable(String),
77
77
  ).returns(WorkOS::Factor)
78
78
  end
79
- # rubocop:disable Metrics/MethodLength
80
79
  def enroll_factor(
81
80
  type:,
82
81
  totp_issuer: nil,
@@ -101,7 +100,6 @@ module WorkOS
101
100
  ))
102
101
  WorkOS::Factor.new(response.body)
103
102
  end
104
- # rubocop:enable Metrics/MethodLength
105
103
 
106
104
  sig do
107
105
  params(
data/lib/workos/sso.rb CHANGED
@@ -54,7 +54,7 @@ module WorkOS
54
54
  # "response_type=code&state=%7B%3Anext_page%3D%3E%22%2Fdocs%22%7D"
55
55
  #
56
56
  # @return [String]
57
- # rubocop:disable Metrics/MethodLength, Metrics/ParameterLists
57
+ # rubocop:disable Metrics/ParameterLists
58
58
  sig do
59
59
  params(
60
60
  redirect_uri: String,
@@ -106,7 +106,7 @@ module WorkOS
106
106
 
107
107
  "https://#{WorkOS::API_HOSTNAME}/sso/authorize?#{query}"
108
108
  end
109
- # rubocop:enable Metrics/MethodLength, Metrics/ParameterLists
109
+ # rubocop:enable Metrics/ParameterLists
110
110
 
111
111
  sig do
112
112
  params(
@@ -271,7 +271,6 @@ module WorkOS
271
271
  end
272
272
 
273
273
  sig { params(response: Net::HTTPResponse).void }
274
- # rubocop:disable Metrics/MethodLength
275
274
  def check_and_raise_profile_and_token_error(response:)
276
275
  begin
277
276
  body = JSON.parse(response.body)
@@ -293,7 +292,6 @@ module WorkOS
293
292
  request_id: request_id,
294
293
  )
295
294
  end
296
- # rubocop:enable Metrics/MethodLength
297
295
  end
298
296
  end
299
297
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+ # typed: strict
3
+
4
+ module WorkOS
5
+ module Types
6
+ # The EventStruct acts as a typed interface
7
+ # for the Event class
8
+ class EventStruct < T::Struct
9
+ const :id, String
10
+ const :event, String
11
+ const :data, T::Hash[Symbol, Object]
12
+ const :created_at, String
13
+ end
14
+ end
15
+ end
data/lib/workos/types.rb CHANGED
@@ -9,6 +9,7 @@ module WorkOS
9
9
  require_relative 'types/connection_struct'
10
10
  require_relative 'types/directory_struct'
11
11
  require_relative 'types/directory_group_struct'
12
+ require_relative 'types/event_struct'
12
13
  require_relative 'types/intent_enum'
13
14
  require_relative 'types/list_struct'
14
15
  require_relative 'types/organization_struct'
@@ -2,5 +2,5 @@
2
2
  # typed: strong
3
3
 
4
4
  module WorkOS
5
- VERSION = '2.13.0'
5
+ VERSION = '2.15.0'
6
6
  end
@@ -82,7 +82,7 @@ module WorkOS
82
82
  tolerance: Integer,
83
83
  ).returns(T::Boolean)
84
84
  end
85
- # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
85
+ # rubocop:disable Metrics/AbcSize
86
86
  def verify_header(
87
87
  payload:,
88
88
  sig_header:,
@@ -120,7 +120,7 @@ module WorkOS
120
120
 
121
121
  true
122
122
  end
123
- # rubocop:enable Metrics/MethodLength, Metrics/AbcSize
123
+ # rubocop:enable Metrics/AbcSize
124
124
 
125
125
  # Extracts timestamp and signature hash from WorkOS-Signature header
126
126
  #
data/lib/workos.rb CHANGED
@@ -46,6 +46,8 @@ module WorkOS
46
46
  autoload :DirectorySync, 'workos/directory_sync'
47
47
  autoload :Directory, 'workos/directory'
48
48
  autoload :DirectoryGroup, 'workos/directory_group'
49
+ autoload :Event, 'workos/event'
50
+ autoload :Events, 'workos/events'
49
51
  autoload :Organization, 'workos/organization'
50
52
  autoload :Organizations, 'workos/organizations'
51
53
  autoload :Passwordless, 'workos/passwordless'
@@ -116,6 +116,8 @@ describe WorkOS::AuditLogs do
116
116
  range_end: '2022-08-22T15:04:19.704Z',
117
117
  actions: ['user.signed_in'],
118
118
  actors: ['Jon Smith'],
119
+ actor_names: ['Jon Smith'],
120
+ actor_ids: ['user_123'],
119
121
  targets: %w[user team],
120
122
  )
121
123
 
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+ # typed: false
3
+
4
+ describe WorkOS::Events do
5
+ it_behaves_like 'client'
6
+
7
+ describe '.list_events' do
8
+ context 'with no options' do
9
+ it 'returns events and metadata' do
10
+ expected_metadata = {
11
+ 'after' => nil,
12
+ }
13
+
14
+ VCR.use_cassette 'events/list_events_with_no_options' do
15
+ events = described_class.list_events
16
+
17
+ expect(events.data.size).to eq(1)
18
+ expect(events.list_metadata).to eq(expected_metadata)
19
+ end
20
+ end
21
+ end
22
+
23
+ context 'with event option' do
24
+ it 'forms the proper request to the API' do
25
+ request_args = [
26
+ '/events?events=connection.activated',
27
+ 'Content-Type' => 'application/json'
28
+ ]
29
+
30
+ expected_request = Net::HTTP::Get.new(*request_args)
31
+
32
+ expect(Net::HTTP::Get).to receive(:new).with(*request_args).
33
+ and_return(expected_request)
34
+
35
+ VCR.use_cassette 'events/list_events_with_event' do
36
+ events = described_class.list_events(
37
+ events: ['connection.activated'],
38
+ )
39
+
40
+ expect(events.data.size).to eq(1)
41
+ end
42
+ end
43
+ end
44
+
45
+ context 'with the after option' do
46
+ it 'forms the proper request to the API' do
47
+ request_args = [
48
+ '/events?after=event_01FGCPNV312FHFRCX0BYWHVSE1',
49
+ 'Content-Type' => 'application/json'
50
+ ]
51
+
52
+ expected_request = Net::HTTP::Get.new(*request_args)
53
+
54
+ expect(Net::HTTP::Get).to receive(:new).with(*request_args).
55
+ and_return(expected_request)
56
+
57
+ VCR.use_cassette 'events/list_events_with_after' do
58
+ events = described_class.list_events(after: 'event_01FGCPNV312FHFRCX0BYWHVSE1')
59
+
60
+ expect(events.data.size).to eq(1)
61
+ end
62
+ end
63
+ end
64
+
65
+ context 'with the range_start and range_end options' do
66
+ it 'forms the proper request to the API' do
67
+ request_args = [
68
+ '/events?range_start=2023-01-01T00%3A00%3A00Z&range_end=2023-01-03T00%3A00%3A00Z',
69
+ 'Content-Type' => 'application/json'
70
+ ]
71
+
72
+ expected_request = Net::HTTP::Get.new(*request_args)
73
+
74
+ expect(Net::HTTP::Get).to receive(:new).with(*request_args).
75
+ and_return(expected_request)
76
+
77
+ VCR.use_cassette 'events/list_events_with_range' do
78
+ events = described_class.list_events(
79
+ range_start: '2023-01-01T00:00:00Z',
80
+ range_end: '2023-01-03T00:00:00Z',
81
+ )
82
+
83
+ expect(events.data.size).to eq(1)
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
@@ -6,8 +6,7 @@ http_interactions:
6
6
  body:
7
7
  encoding: UTF-8
8
8
  string:
9
- '{"organization_id":"org_123","range_start":"2022-06-22T15:04:19.704Z","range_end":"2022-08-22T15:04:19.704Z","actions":["user.signed_in"],"actors":["Jon
10
- Smith"],"targets":["user","team"]}'
9
+ '{"organization_id":"org_123","range_start":"2022-06-22T15:04:19.704Z","range_end":"2022-08-22T15:04:19.704Z","actions":["user.signed_in"],"actors":["Jon Smith"],"actor_names":["Jon Smith"],"actor_ids":["user_123"],"targets":["user","team"]}'
11
10
  headers:
12
11
  Content-Type:
13
12
  - application/json
@@ -0,0 +1,80 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.workos.com/events?after=event_01FGCPNV312FHFRCX0BYWHVSE1
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ User-Agent:
17
+ - WorkOS; ruby/2.7.2; arm64-darwin21; v2.3.0
18
+ Authorization:
19
+ - Bearer <API_KEY>
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Thu, 14 Jul 2022 16:46:23 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Content-Length:
30
+ - '616'
31
+ Connection:
32
+ - keep-alive
33
+ Access-Control-Allow-Credentials:
34
+ - 'true'
35
+ Content-Security-Policy:
36
+ - 'default-src ''self'';base-uri ''self'';block-all-mixed-content;font-src ''self''
37
+ https: data:;frame-ancestors ''self'';img-src ''self'' data:;object-src ''none'';script-src
38
+ ''self'';script-src-attr ''none'';style-src ''self'' https: ''unsafe-inline'';upgrade-insecure-requests'
39
+ Etag:
40
+ - W/"680-NPvBik348v8xg6EE7iZMYwD5UXw"
41
+ Expect-Ct:
42
+ - max-age=0
43
+ Referrer-Policy:
44
+ - no-referrer
45
+ Strict-Transport-Security:
46
+ - max-age=15552000; includeSubDomains
47
+ Vary:
48
+ - Origin, Accept-Encoding
49
+ Via:
50
+ - 1.1 spaces-router (b642bf20b975)
51
+ X-Content-Type-Options:
52
+ - nosniff
53
+ X-Dns-Prefetch-Control:
54
+ - 'off'
55
+ X-Download-Options:
56
+ - noopen
57
+ X-Frame-Options:
58
+ - SAMEORIGIN
59
+ X-Permitted-Cross-Domain-Policies:
60
+ - none
61
+ X-Request-Id:
62
+ - 51a82273-b413-cead-b968-c07ba4d6fd08
63
+ X-Xss-Protection:
64
+ - '0'
65
+ Cf-Cache-Status:
66
+ - DYNAMIC
67
+ Report-To:
68
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=OS7ELJ3A8tkzMafvaIThD%2B5JlYmul1puZlAXTxEKYBLlq%2B6DCtqDqAi4dtr4yRP3khNmg6MwPiuLqtdOXRmPOtag9Ti%2FGK8ra%2BJOlpwkFjD965CNBfzao4EJtExDkbS3"}],"group":"cf-nel","max_age":604800}'
69
+ Nel:
70
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
71
+ Server:
72
+ - cloudflare
73
+ Cf-Ray:
74
+ - 72abbbf2b93e8ca5-EWR
75
+ body:
76
+ encoding: ASCII-8BIT
77
+ string: '{"object":"list","data":[{"object":"event","id":"event_01FK3HFFGMC2WF32RR8SKWC8KA","event":"dsync.user.created","created_at":"2021-10-28T13:29:54.451Z","data":{"email":"foo@foocorp.com"}}], "listMetadata":{"after":null}}'
78
+ http_version:
79
+ recorded_at: Thu, 14 Jul 2022 16:46:23 GMT
80
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,80 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.workos.com/events?events=connection.activated
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ User-Agent:
17
+ - WorkOS; ruby/2.7.2; arm64-darwin21; v2.3.0
18
+ Authorization:
19
+ - Bearer <API_KEY>
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Thu, 14 Jul 2022 16:46:23 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Content-Length:
30
+ - '616'
31
+ Connection:
32
+ - keep-alive
33
+ Access-Control-Allow-Credentials:
34
+ - 'true'
35
+ Content-Security-Policy:
36
+ - 'default-src ''self'';base-uri ''self'';block-all-mixed-content;font-src ''self''
37
+ https: data:;frame-ancestors ''self'';img-src ''self'' data:;object-src ''none'';script-src
38
+ ''self'';script-src-attr ''none'';style-src ''self'' https: ''unsafe-inline'';upgrade-insecure-requests'
39
+ Etag:
40
+ - W/"680-NPvBik348v8xg6EE7iZMYwD5UXw"
41
+ Expect-Ct:
42
+ - max-age=0
43
+ Referrer-Policy:
44
+ - no-referrer
45
+ Strict-Transport-Security:
46
+ - max-age=15552000; includeSubDomains
47
+ Vary:
48
+ - Origin, Accept-Encoding
49
+ Via:
50
+ - 1.1 spaces-router (b642bf20b975)
51
+ X-Content-Type-Options:
52
+ - nosniff
53
+ X-Dns-Prefetch-Control:
54
+ - 'off'
55
+ X-Download-Options:
56
+ - noopen
57
+ X-Frame-Options:
58
+ - SAMEORIGIN
59
+ X-Permitted-Cross-Domain-Policies:
60
+ - none
61
+ X-Request-Id:
62
+ - 51a82273-b413-cead-b968-c07ba4d6fd08
63
+ X-Xss-Protection:
64
+ - '0'
65
+ Cf-Cache-Status:
66
+ - DYNAMIC
67
+ Report-To:
68
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=OS7ELJ3A8tkzMafvaIThD%2B5JlYmul1puZlAXTxEKYBLlq%2B6DCtqDqAi4dtr4yRP3khNmg6MwPiuLqtdOXRmPOtag9Ti%2FGK8ra%2BJOlpwkFjD965CNBfzao4EJtExDkbS3"}],"group":"cf-nel","max_age":604800}'
69
+ Nel:
70
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
71
+ Server:
72
+ - cloudflare
73
+ Cf-Ray:
74
+ - 72abbbf2b93e8ca5-EWR
75
+ body:
76
+ encoding: ASCII-8BIT
77
+ string: '{"object":"list","data":[{"object":"event","id":"event_01FK3HFFGMC2WF32RR8SKWC8KA","event":"dsync.user.created","created_at":"2021-10-28T13:29:54.451Z","data":{"email":"foo@foocorp.com"}}], "listMetadata":{"after":null}}'
78
+ http_version:
79
+ recorded_at: Thu, 14 Jul 2022 16:46:23 GMT
80
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,80 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.workos.com/events
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ User-Agent:
17
+ - WorkOS; ruby/2.7.2; arm64-darwin21; v2.3.0
18
+ Authorization:
19
+ - Bearer <API_KEY>
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Thu, 14 Jul 2022 16:46:23 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Content-Length:
30
+ - '616'
31
+ Connection:
32
+ - keep-alive
33
+ Access-Control-Allow-Credentials:
34
+ - 'true'
35
+ Content-Security-Policy:
36
+ - 'default-src ''self'';base-uri ''self'';block-all-mixed-content;font-src ''self''
37
+ https: data:;frame-ancestors ''self'';img-src ''self'' data:;object-src ''none'';script-src
38
+ ''self'';script-src-attr ''none'';style-src ''self'' https: ''unsafe-inline'';upgrade-insecure-requests'
39
+ Etag:
40
+ - W/"680-NPvBik348v8xg6EE7iZMYwD5UXw"
41
+ Expect-Ct:
42
+ - max-age=0
43
+ Referrer-Policy:
44
+ - no-referrer
45
+ Strict-Transport-Security:
46
+ - max-age=15552000; includeSubDomains
47
+ Vary:
48
+ - Origin, Accept-Encoding
49
+ Via:
50
+ - 1.1 spaces-router (b642bf20b975)
51
+ X-Content-Type-Options:
52
+ - nosniff
53
+ X-Dns-Prefetch-Control:
54
+ - 'off'
55
+ X-Download-Options:
56
+ - noopen
57
+ X-Frame-Options:
58
+ - SAMEORIGIN
59
+ X-Permitted-Cross-Domain-Policies:
60
+ - none
61
+ X-Request-Id:
62
+ - 51a82273-b413-cead-b968-c07ba4d6fd08
63
+ X-Xss-Protection:
64
+ - '0'
65
+ Cf-Cache-Status:
66
+ - DYNAMIC
67
+ Report-To:
68
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=OS7ELJ3A8tkzMafvaIThD%2B5JlYmul1puZlAXTxEKYBLlq%2B6DCtqDqAi4dtr4yRP3khNmg6MwPiuLqtdOXRmPOtag9Ti%2FGK8ra%2BJOlpwkFjD965CNBfzao4EJtExDkbS3"}],"group":"cf-nel","max_age":604800}'
69
+ Nel:
70
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
71
+ Server:
72
+ - cloudflare
73
+ Cf-Ray:
74
+ - 72abbbf2b93e8ca5-EWR
75
+ body:
76
+ encoding: ASCII-8BIT
77
+ string: '{"object":"list","data":[{"object":"event","id":"event_01FK3HFFGMC2WF32RR8SKWC8KA","event":"dsync.user.created","created_at":"2021-10-28T13:29:54.451Z","data":{"email":"foo@foocorp.com"}}], "listMetadata":{"after":null}}'
78
+ http_version:
79
+ recorded_at: Thu, 14 Jul 2022 16:46:23 GMT
80
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,80 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.workos.com/events?range_end=2023-01-03T00:00:00Z&range_start=2023-01-01T00:00:00Z
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ User-Agent:
17
+ - WorkOS; ruby/2.7.2; arm64-darwin21; v2.3.0
18
+ Authorization:
19
+ - Bearer <API_KEY>
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Thu, 14 Jul 2022 16:46:23 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Content-Length:
30
+ - '616'
31
+ Connection:
32
+ - keep-alive
33
+ Access-Control-Allow-Credentials:
34
+ - 'true'
35
+ Content-Security-Policy:
36
+ - 'default-src ''self'';base-uri ''self'';block-all-mixed-content;font-src ''self''
37
+ https: data:;frame-ancestors ''self'';img-src ''self'' data:;object-src ''none'';script-src
38
+ ''self'';script-src-attr ''none'';style-src ''self'' https: ''unsafe-inline'';upgrade-insecure-requests'
39
+ Etag:
40
+ - W/"680-NPvBik348v8xg6EE7iZMYwD5UXw"
41
+ Expect-Ct:
42
+ - max-age=0
43
+ Referrer-Policy:
44
+ - no-referrer
45
+ Strict-Transport-Security:
46
+ - max-age=15552000; includeSubDomains
47
+ Vary:
48
+ - Origin, Accept-Encoding
49
+ Via:
50
+ - 1.1 spaces-router (b642bf20b975)
51
+ X-Content-Type-Options:
52
+ - nosniff
53
+ X-Dns-Prefetch-Control:
54
+ - 'off'
55
+ X-Download-Options:
56
+ - noopen
57
+ X-Frame-Options:
58
+ - SAMEORIGIN
59
+ X-Permitted-Cross-Domain-Policies:
60
+ - none
61
+ X-Request-Id:
62
+ - 51a82273-b413-cead-b968-c07ba4d6fd08
63
+ X-Xss-Protection:
64
+ - '0'
65
+ Cf-Cache-Status:
66
+ - DYNAMIC
67
+ Report-To:
68
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=OS7ELJ3A8tkzMafvaIThD%2B5JlYmul1puZlAXTxEKYBLlq%2B6DCtqDqAi4dtr4yRP3khNmg6MwPiuLqtdOXRmPOtag9Ti%2FGK8ra%2BJOlpwkFjD965CNBfzao4EJtExDkbS3"}],"group":"cf-nel","max_age":604800}'
69
+ Nel:
70
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
71
+ Server:
72
+ - cloudflare
73
+ Cf-Ray:
74
+ - 72abbbf2b93e8ca5-EWR
75
+ body:
76
+ encoding: ASCII-8BIT
77
+ string: '{"object":"list","data":[{"object":"event","id":"event_01FK3HFFGMC2WF32RR8SKWC8KA","event":"dsync.user.created","created_at":"2021-10-28T13:29:54.451Z","data":{"email":"foo@foocorp.com"}}], "listMetadata":{"after":null}}'
78
+ http_version:
79
+ recorded_at: Thu, 14 Jul 2022 16:46:23 GMT
80
+ recorded_with: VCR 5.0.0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workos
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.13.0
4
+ version: 2.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - WorkOS
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-25 00:00:00.000000000 Z
11
+ date: 2023-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sorbet-runtime
@@ -223,6 +223,8 @@ files:
223
223
  - lib/workos/directory_sync.rb
224
224
  - lib/workos/directory_user.rb
225
225
  - lib/workos/errors.rb
226
+ - lib/workos/event.rb
227
+ - lib/workos/events.rb
226
228
  - lib/workos/factor.rb
227
229
  - lib/workos/hash_provider.rb
228
230
  - lib/workos/mfa.rb
@@ -240,6 +242,7 @@ files:
240
242
  - lib/workos/types/directory_group_struct.rb
241
243
  - lib/workos/types/directory_struct.rb
242
244
  - lib/workos/types/directory_user_struct.rb
245
+ - lib/workos/types/event_struct.rb
243
246
  - lib/workos/types/factor_struct.rb
244
247
  - lib/workos/types/intent_enum.rb
245
248
  - lib/workos/types/list_struct.rb
@@ -300,6 +303,7 @@ files:
300
303
  - spec/lib/workos/configuration_spec.rb
301
304
  - spec/lib/workos/directory_sync_spec.rb
302
305
  - spec/lib/workos/directory_user_spec.rb
306
+ - spec/lib/workos/event_spec.rb
303
307
  - spec/lib/workos/mfa_spec.rb
304
308
  - spec/lib/workos/organizations_spec.rb
305
309
  - spec/lib/workos/passwordless_spec.rb
@@ -345,6 +349,10 @@ files:
345
349
  - spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_group.yml
346
350
  - spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_limit.yml
347
351
  - spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_no_options.yml
352
+ - spec/support/fixtures/vcr_cassettes/events/list_events_with_after.yml
353
+ - spec/support/fixtures/vcr_cassettes/events/list_events_with_event.yml
354
+ - spec/support/fixtures/vcr_cassettes/events/list_events_with_no_options.yml
355
+ - spec/support/fixtures/vcr_cassettes/events/list_events_with_range.yml
348
356
  - spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_generic_valid.yml
349
357
  - spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_sms_valid.yml
350
358
  - spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_totp_valid.yml
@@ -413,7 +421,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
413
421
  - !ruby/object:Gem::Version
414
422
  version: '0'
415
423
  requirements: []
416
- rubygems_version: 3.4.12
424
+ rubygems_version: 3.4.14
417
425
  signing_key:
418
426
  specification_version: 4
419
427
  summary: API client for WorkOS
@@ -423,6 +431,7 @@ test_files:
423
431
  - spec/lib/workos/configuration_spec.rb
424
432
  - spec/lib/workos/directory_sync_spec.rb
425
433
  - spec/lib/workos/directory_user_spec.rb
434
+ - spec/lib/workos/event_spec.rb
426
435
  - spec/lib/workos/mfa_spec.rb
427
436
  - spec/lib/workos/organizations_spec.rb
428
437
  - spec/lib/workos/passwordless_spec.rb
@@ -468,6 +477,10 @@ test_files:
468
477
  - spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_group.yml
469
478
  - spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_limit.yml
470
479
  - spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_no_options.yml
480
+ - spec/support/fixtures/vcr_cassettes/events/list_events_with_after.yml
481
+ - spec/support/fixtures/vcr_cassettes/events/list_events_with_event.yml
482
+ - spec/support/fixtures/vcr_cassettes/events/list_events_with_no_options.yml
483
+ - spec/support/fixtures/vcr_cassettes/events/list_events_with_range.yml
471
484
  - spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_generic_valid.yml
472
485
  - spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_sms_valid.yml
473
486
  - spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_totp_valid.yml