passageidentity 0.6.2 → 0.7.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.
Files changed (135) hide show
  1. checksums.yaml +4 -4
  2. data/lib/openapi_client/api/apps_api.rb +2 -2
  3. data/lib/openapi_client/api/magic_links_api.rb +4 -4
  4. data/lib/openapi_client/api/tokens_api.rb +2 -2
  5. data/lib/openapi_client/api/user_devices_api.rb +3 -3
  6. data/lib/openapi_client/api/users_api.rb +8 -8
  7. data/lib/openapi_client/api_client.rb +36 -30
  8. data/lib/openapi_client/api_error.rb +1 -1
  9. data/lib/openapi_client/configuration.rb +11 -1
  10. data/lib/openapi_client/models/app_info.rb +36 -3
  11. data/lib/openapi_client/models/app_response.rb +1 -1
  12. data/lib/openapi_client/models/apple_user_social_connection.rb +1 -1
  13. data/lib/openapi_client/models/auth_methods.rb +1 -1
  14. data/lib/openapi_client/models/create_magic_link_request.rb +2 -57
  15. data/lib/openapi_client/models/create_user_request.rb +1 -1
  16. data/lib/openapi_client/models/element_customization.rb +1 -1
  17. data/lib/openapi_client/models/font_family.rb +1 -1
  18. data/lib/openapi_client/models/github_user_social_connection.rb +1 -1
  19. data/lib/openapi_client/models/google_user_social_connection.rb +1 -1
  20. data/lib/openapi_client/models/layout_config.rb +1 -1
  21. data/lib/openapi_client/models/layouts.rb +1 -1
  22. data/lib/openapi_client/models/link.rb +1 -1
  23. data/lib/openapi_client/models/list_devices_response.rb +1 -1
  24. data/lib/openapi_client/models/list_paginated_users_item.rb +19 -2
  25. data/lib/openapi_client/models/list_paginated_users_response.rb +1 -1
  26. data/lib/openapi_client/models/magic_link.rb +1 -1
  27. data/lib/openapi_client/models/magic_link_auth_method.rb +1 -1
  28. data/lib/openapi_client/models/magic_link_channel.rb +1 -1
  29. data/lib/openapi_client/models/magic_link_response.rb +1 -1
  30. data/lib/openapi_client/models/magic_link_type.rb +1 -1
  31. data/lib/openapi_client/models/model400_error.rb +1 -1
  32. data/lib/openapi_client/models/model401_error.rb +1 -1
  33. data/lib/openapi_client/models/model403_error.rb +1 -1
  34. data/lib/openapi_client/models/model404_error.rb +3 -3
  35. data/lib/openapi_client/models/model500_error.rb +1 -1
  36. data/lib/openapi_client/models/nonce.rb +1 -1
  37. data/lib/openapi_client/models/otp_auth_method.rb +1 -1
  38. data/lib/openapi_client/models/paginated_links.rb +1 -1
  39. data/lib/openapi_client/models/passkeys_auth_method.rb +1 -1
  40. data/lib/openapi_client/models/social_connection_type.rb +41 -0
  41. data/lib/openapi_client/models/technologies.rb +1 -1
  42. data/lib/openapi_client/models/theme_type.rb +41 -0
  43. data/lib/openapi_client/models/ttl_display_unit.rb +1 -1
  44. data/lib/openapi_client/models/update_user_request.rb +1 -1
  45. data/lib/openapi_client/models/user_event_action.rb +41 -0
  46. data/lib/openapi_client/models/user_event_status.rb +1 -1
  47. data/lib/openapi_client/models/user_info.rb +19 -2
  48. data/lib/openapi_client/models/user_metadata_field.rb +1 -1
  49. data/lib/openapi_client/models/user_metadata_field_type.rb +1 -1
  50. data/lib/openapi_client/models/user_recent_event.rb +51 -5
  51. data/lib/openapi_client/models/user_response.rb +1 -1
  52. data/lib/openapi_client/models/user_social_connections.rb +1 -1
  53. data/lib/openapi_client/models/user_status.rb +1 -1
  54. data/lib/openapi_client/models/web_authn_devices.rb +1 -1
  55. data/lib/openapi_client/models/web_authn_icons.rb +1 -1
  56. data/lib/openapi_client/models/web_authn_type.rb +1 -1
  57. data/lib/openapi_client/version.rb +1 -1
  58. data/lib/openapi_client.rb +4 -4
  59. data/lib/passageidentity/auth.rb +205 -104
  60. data/lib/passageidentity/client.rb +71 -59
  61. data/lib/passageidentity/error.rb +42 -16
  62. data/lib/passageidentity/user_api.rb +120 -161
  63. data/lib/passageidentity/version.rb +1 -1
  64. data/lib/passageidentity.rb +6 -2
  65. metadata +33 -79
  66. data/.github/workflows/deploy.yml +0 -30
  67. data/.github/workflows/on-pull-request.yml +0 -33
  68. data/.gitignore +0 -58
  69. data/CHANGELOG.md +0 -57
  70. data/CONTRIBUTING.md +0 -66
  71. data/Gemfile +0 -13
  72. data/LICENSE +0 -21
  73. data/README.md +0 -84
  74. data/docs/custom/AuthApi.md +0 -141
  75. data/docs/custom/ClientApi.md +0 -107
  76. data/docs/custom/UserApi.md +0 -419
  77. data/docs/generated/AppInfo.md +0 -94
  78. data/docs/generated/AppResponse.md +0 -18
  79. data/docs/generated/AppleUserSocialConnection.md +0 -24
  80. data/docs/generated/AppsApi.md +0 -77
  81. data/docs/generated/AuthMethods.md +0 -22
  82. data/docs/generated/CreateMagicLinkRequest.md +0 -36
  83. data/docs/generated/CreateUserRequest.md +0 -22
  84. data/docs/generated/ElementCustomization.md +0 -56
  85. data/docs/generated/FontFamily.md +0 -15
  86. data/docs/generated/GithubUserSocialConnection.md +0 -24
  87. data/docs/generated/GoogleUserSocialConnection.md +0 -24
  88. data/docs/generated/LayoutConfig.md +0 -26
  89. data/docs/generated/Layouts.md +0 -20
  90. data/docs/generated/Link.md +0 -18
  91. data/docs/generated/ListDevicesResponse.md +0 -18
  92. data/docs/generated/ListPaginatedUsersItem.md +0 -38
  93. data/docs/generated/ListPaginatedUsersResponse.md +0 -28
  94. data/docs/generated/MagicLink.md +0 -36
  95. data/docs/generated/MagicLinkAuthMethod.md +0 -22
  96. data/docs/generated/MagicLinkChannel.md +0 -15
  97. data/docs/generated/MagicLinkResponse.md +0 -18
  98. data/docs/generated/MagicLinkType.md +0 -15
  99. data/docs/generated/MagicLinksApi.md +0 -79
  100. data/docs/generated/Model400Error.md +0 -20
  101. data/docs/generated/Model401Error.md +0 -20
  102. data/docs/generated/Model403Error.md +0 -20
  103. data/docs/generated/Model404Error.md +0 -20
  104. data/docs/generated/Model500Error.md +0 -20
  105. data/docs/generated/Nonce.md +0 -18
  106. data/docs/generated/OtpAuthMethod.md +0 -22
  107. data/docs/generated/PaginatedLinks.md +0 -26
  108. data/docs/generated/PasskeysAuthMethod.md +0 -18
  109. data/docs/generated/README.md +0 -158
  110. data/docs/generated/Technologies.md +0 -15
  111. data/docs/generated/TokensApi.md +0 -78
  112. data/docs/generated/TtlDisplayUnit.md +0 -15
  113. data/docs/generated/UpdateUserRequest.md +0 -22
  114. data/docs/generated/UserDevicesApi.md +0 -152
  115. data/docs/generated/UserEventStatus.md +0 -15
  116. data/docs/generated/UserInfo.md +0 -48
  117. data/docs/generated/UserMetadataField.md +0 -28
  118. data/docs/generated/UserMetadataFieldType.md +0 -15
  119. data/docs/generated/UserRecentEvent.md +0 -30
  120. data/docs/generated/UserResponse.md +0 -18
  121. data/docs/generated/UserSocialConnections.md +0 -22
  122. data/docs/generated/UserStatus.md +0 -15
  123. data/docs/generated/UsersApi.md +0 -534
  124. data/docs/generated/WebAuthnDevices.md +0 -34
  125. data/docs/generated/WebAuthnIcons.md +0 -20
  126. data/docs/generated/WebAuthnType.md +0 -15
  127. data/generate.sh +0 -31
  128. data/openapitools.json +0 -7
  129. data/passageidentity.gemspec +0 -32
  130. data/tests/all.rb +0 -3
  131. data/tests/app_test.rb +0 -15
  132. data/tests/auth_test.rb +0 -74
  133. data/tests/errors_test.rb +0 -30
  134. data/tests/magic_link_test.rb +0 -22
  135. data/tests/user_api_test.rb +0 -121
@@ -1,15 +0,0 @@
1
- # OpenapiClient::WebAuthnType
2
-
3
- ## Properties
4
-
5
- | Name | Type | Description | Notes |
6
- | ---- | ---- | ----------- | ----- |
7
-
8
- ## Example
9
-
10
- ```ruby
11
- require 'openapi_client'
12
-
13
- instance = OpenapiClient::WebAuthnType.new()
14
- ```
15
-
data/generate.sh DELETED
@@ -1,31 +0,0 @@
1
- # #!/bin/bash
2
- # set -e
3
-
4
- if [ -z "$1" ]; then
5
- echo "Required generator file is missing."
6
- exit 1
7
- fi
8
-
9
- file="$1"
10
-
11
- npm install @openapitools/openapi-generator-cli -g
12
-
13
- mkdir generated
14
-
15
- openapi-generator-cli generate \
16
- -i "$file" \
17
- -g ruby \
18
- -o ./generated \
19
- --additional-properties=modelPropertyNaming=original,library=faraday
20
-
21
- rm -rf ./docs/generated
22
- mv ./generated/docs ./docs/generated
23
- mv ./generated/README.md ./docs/generated
24
-
25
- rm -rf ./lib/openapi_client
26
- mv ./generated/lib/openapi_client ./lib
27
-
28
- rm -rf ./lib/openapi_client.rb
29
- mv ./generated/lib/openapi_client.rb ./lib/openapi_client.rb
30
-
31
- rm -rf ./generated
data/openapitools.json DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json",
3
- "spaces": 2,
4
- "generator-cli": {
5
- "version": "7.1.0"
6
- }
7
- }
@@ -1,32 +0,0 @@
1
- require_relative 'lib/passageidentity/version'
2
-
3
- Gem::Specification.new do |s|
4
- s.name = 'passageidentity'
5
- s.version = Passage::VERSION
6
- s.summary = 'Passage Passkey Complete SDK'
7
- s.description =
8
- 'Passkey Complete for Ruby - Integrate into your Ruby API or service to enable a completely passwordless standalone auth solution with Passage by 1Password.'
9
- s.authors = ['Passage by 1Password']
10
- s.email = 'support@passage.id'
11
- s.files = ['lib/passageidentity.rb']
12
- s.homepage = 'http://docs.passage.id/complete'
13
- s.license = 'MIT'
14
-
15
- s.metadata['source_code_uri'] =
16
- 'https://github.com/passageidentity/passage-ruby'
17
-
18
- # Specify which files should be added to the gem when it is released.
19
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
20
- s.require_paths = ['lib']
21
-
22
- s.files =
23
- Dir.chdir(File.expand_path(__dir__)) do
24
- `git ls-files -z`.split("\x0").reject do |f|
25
- f.match(%r{^(test|spec|features)/})
26
- end
27
- end
28
-
29
- s.add_dependency 'faraday', '>= 0.17.0', '< 2.0'
30
- s.add_dependency 'jwt', '~> 2.3', '>= 2.3.0'
31
- s.add_dependency 'openssl', '~> 3.0', '>= 3.0.0'
32
- end
data/tests/all.rb DELETED
@@ -1,3 +0,0 @@
1
- Dir[File.dirname(File.absolute_path(__FILE__)) + "/**/*_test.rb"].each do |file|
2
- require file
3
- end
data/tests/app_test.rb DELETED
@@ -1,15 +0,0 @@
1
- require_relative "../lib/passageidentity/client"
2
- require "dotenv"
3
- require "faraday"
4
- require "test/unit"
5
-
6
- Dotenv.load(".env")
7
- class TestAppAPI < Test::Unit::TestCase
8
- PassageClient =
9
- Passage::Client.new(app_id: ENV["APP_ID"], api_key: ENV["API_KEY"])
10
-
11
- def test_get_app()
12
- app = PassageClient.get_app()
13
- assert_equal ENV["APP_ID"], app.id
14
- end
15
- end
data/tests/auth_test.rb DELETED
@@ -1,74 +0,0 @@
1
- require_relative "../lib/passageidentity/client"
2
- require "dotenv"
3
- require "faraday"
4
- require "rack"
5
- require "test/unit"
6
-
7
- Dotenv.load(".env")
8
- class TestAuthAPI < Test::Unit::TestCase
9
- PassageClient =
10
- Passage::Client.new(app_id: ENV["APP_ID"], api_key: ENV["API_KEY"])
11
- PassageHeaderClient =
12
- Passage::Client.new(
13
- app_id: ENV["APP_ID"],
14
- api_key: ENV["API_KEY"],
15
- auth_strategy: Passage::HEADER_STRATEGY
16
- )
17
-
18
- def test_valid_jwt
19
- user_id = PassageClient.auth.validate_jwt(ENV["PSG_JWT"])
20
- assert_equal ENV["TEST_USER_ID"], user_id
21
- end
22
-
23
- def test_valid_authenticate_token
24
- user_id = PassageClient.auth.authenticate_token(ENV["PSG_JWT"])
25
- assert_equal ENV["TEST_USER_ID"], user_id
26
- end
27
-
28
- def test_invalid_authenticate_token
29
- assert_raises Passage::PassageError do
30
- PassageClient.auth.authenticate_token("invalid_token")
31
- end
32
- end
33
-
34
- def test_valid_authenticate_request_cookie
35
- env = Rack::MockRequest.env_for("https://test.com")
36
- env["HTTP_COOKIE"] = "psg_auth_token=#{ENV["PSG_JWT"]}"
37
- cookie_request = Rack::Request.new(env)
38
- user_id = PassageClient.auth.authenticate_request(cookie_request)
39
- assert_equal ENV["TEST_USER_ID"], user_id
40
- end
41
-
42
- def test_invalid_authenticate_request_cookie
43
- envBadCookie = Rack::MockRequest.env_for("https://test.com")
44
- envBadCookie["HTTP_COOKIE"] = "psg_auth_token=invalid_token}"
45
- bad_cookie_request = Rack::Request.new(envBadCookie)
46
- assert_raises Passage::PassageError do
47
- PassageClient.auth.authenticate_request(bad_cookie_request)
48
- end
49
- no_cookie_request = Rack::Request.new({})
50
- assert_raises Passage::PassageError do
51
- PassageClient.auth.authenticate_request(no_cookie_request)
52
- end
53
- end
54
-
55
- def test_valid_authenticate_request_header
56
- headers = { "Authorization" => "Bearer #{ENV["PSG_JWT"]}" }
57
- header_request = Faraday.new(url: "https://test.com", headers: headers)
58
- user_id = PassageHeaderClient.auth.authenticate_request(header_request)
59
- assert_equal ENV["TEST_USER_ID"], user_id
60
- end
61
-
62
- def test_invalid_authenticate_request_header
63
- invalid_headers = { "Authorization" => "Bearer invalid_token" }
64
- no_header_request = Faraday.new(url: "https://test.com")
65
- assert_raises Passage::PassageError do
66
- PassageHeaderClient.auth.authenticate_request(no_header_request)
67
- end
68
- invalid_header_request =
69
- Faraday.new(url: "https://test.com", headers: invalid_headers)
70
- assert_raises Passage::PassageError do
71
- PassageHeaderClient.auth.authenticate_request(no_header_request)
72
- end
73
- end
74
- end
data/tests/errors_test.rb DELETED
@@ -1,30 +0,0 @@
1
- require_relative "../lib/passageidentity/error"
2
- require "test/unit"
3
- require "net/http"
4
-
5
- class ErrorTest < Test::Unit::TestCase
6
- def test_initialize
7
- body = { "error" => "some error" }
8
-
9
- error =
10
- Passage::PassageError.new(
11
- message: "some message",
12
- status_code: 400,
13
- body: body
14
- )
15
-
16
- assert_equal error.message, "some message"
17
- assert_equal error.error, "some error"
18
- assert_equal error.status_code, 400
19
- assert_equal error.status_text, Net::HTTPBadRequest
20
- end
21
-
22
- def test_initialize_message_only
23
- error = Passage::PassageError.new(message: "some message")
24
-
25
- assert_equal error.message, "some message"
26
- assert_equal error.error, nil
27
- assert_equal error.status_code, nil
28
- assert_equal error.status_text, nil
29
- end
30
- end
@@ -1,22 +0,0 @@
1
- require_relative "../lib/passageidentity/client"
2
- require "dotenv"
3
- require "faraday"
4
- require "test/unit"
5
-
6
- Dotenv.load(".env")
7
- class TestMagicLinkAPI < Test::Unit::TestCase
8
- PassageClient =
9
- Passage::Client.new(app_id: ENV["APP_ID"], api_key: ENV["API_KEY"])
10
-
11
- def test_create_magic_link()
12
- magic_link =
13
- PassageClient.create_magic_link(
14
- email: "chris@passage.id",
15
- channel: Passage::EMAIL_CHANNEL,
16
- ttl: 122
17
- )
18
-
19
- assert_equal 122, magic_link.ttl
20
- assert_equal "chris@passage.id", magic_link.identifier
21
- end
22
- end
@@ -1,121 +0,0 @@
1
- require_relative "../lib/passageidentity/client"
2
- require "dotenv"
3
- require "faraday"
4
- require "test/unit"
5
-
6
- Dotenv.load(".env")
7
- class TestUserAPI < Test::Unit::TestCase
8
- PassageClient =
9
- Passage::Client.new(app_id: ENV["APP_ID"], api_key: ENV["API_KEY"])
10
-
11
- def setup()
12
- $global_test_user =
13
- PassageClient.user.create(
14
- email: "chris+test-ruby@passage.id",
15
- user_metadata: {
16
- example1: "cool"
17
- }
18
- )
19
- end
20
-
21
- def test_create_delete_user()
22
- user =
23
- PassageClient.user.create(
24
- email: "chris+test-create-delete@passage.id",
25
- user_metadata: {
26
- example1: "cool"
27
- }
28
- )
29
- assert_equal "chris+test-create-delete@passage.id", user.email
30
- assert_equal "cool", user.user_metadata[:example1]
31
- deleted = PassageClient.user.delete(user_id: user.id)
32
- assert_equal true, deleted
33
- end
34
-
35
- def test_get_user()
36
- user = PassageClient.user.get(user_id: $global_test_user.id)
37
- assert_equal $global_test_user.id, user.id
38
- end
39
-
40
- def test_get_user_by_identifier()
41
- user = PassageClient.user.get(user_id: $global_test_user.id)
42
- assert_equal $global_test_user.id, user.id
43
-
44
- user_by_identifier = PassageClient.user.get_by_identifier(user_identifier: $global_test_user.email)
45
- assert_equal $global_test_user.id, user_by_identifier.id
46
-
47
- assert_equal user, user_by_identifier
48
- end
49
-
50
- def test_get_user_by_identifier_upper_case()
51
- user = PassageClient.user.get(user_id: $global_test_user.id)
52
- assert_equal $global_test_user.id, user.id
53
-
54
- user_by_identifier = PassageClient.user.get_by_identifier(user_identifier: $global_test_user.email.upcase)
55
- assert_equal $global_test_user.id, user_by_identifier.id
56
-
57
- assert_equal user, user_by_identifier
58
- end
59
-
60
- def test_get_user_by_identifier_phone()
61
- $phone = "+15005550007"
62
- create_user = PassageClient.user.create(
63
- phone: $phone,
64
- )
65
- user = PassageClient.user.get(user_id: create_user.id)
66
- assert_equal create_user.id, user.id
67
-
68
- user_by_identifier = PassageClient.user.get_by_identifier(user_identifier: $phone)
69
- assert_equal create_user.id, user_by_identifier.id
70
-
71
- assert_equal user, user_by_identifier
72
- end
73
-
74
- def test_invalid_get_user_by_identifier()
75
- user = PassageClient.user.get(user_id: $global_test_user.id)
76
- assert_equal $global_test_user.id, user.id
77
-
78
- assert_raise (Passage::PassageError) {PassageClient.user.get_by_identifier(user_identifier: "error@passage.id")}
79
- end
80
-
81
- def test_deactivate_user()
82
- user = PassageClient.user.deactivate(user_id: $global_test_user.id)
83
- assert_equal $global_test_user.id, user.id
84
- assert_equal "inactive", user.status
85
- end
86
-
87
- def test_activate_user()
88
- user = PassageClient.user.activate(user_id: $global_test_user.id)
89
- assert_equal $global_test_user.id, user.id
90
- assert_equal "active", user.status
91
- end
92
-
93
- def test_update_user()
94
- new_email = "chris+update_test-ruby@passage.id"
95
- user =
96
- PassageClient.user.update(
97
- user_id: $global_test_user.id,
98
- email: new_email,
99
- user_metadata: {
100
- example1: "lame"
101
- }
102
- )
103
- assert_equal $global_test_user.id, user.id
104
- assert_equal new_email, user.email
105
- assert_equal "lame", user.user_metadata[:example1]
106
- end
107
-
108
- def test_list_devices()
109
- devices = PassageClient.user.list_devices(user_id: $global_test_user.id)
110
- assert_equal [], devices
111
- end
112
-
113
- def test_signout()
114
- success = PassageClient.user.signout(user_id: $global_test_user.id)
115
- assert_equal true, success
116
- end
117
-
118
- def teardown()
119
- deleted = PassageClient.user.delete(user_id: $global_test_user.id)
120
- end
121
- end