shopify_app 18.0.2 → 18.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +42 -26
- data/app/controllers/concerns/shopify_app/ensure_authenticated_links.rb +15 -2
- data/docs/shopify_app/engine.md +2 -2
- data/docs/shopify_app/handling-access-scopes-changes.md +11 -1
- data/docs/shopify_app/script-tags.md +1 -1
- data/docs/shopify_app/webhooks.md +2 -2
- data/lib/generators/shopify_app/install/install_generator.rb +1 -1
- data/lib/shopify_app/version.rb +1 -1
- data/package.json +1 -1
- data/shopify_app.gemspec +1 -1
- data/translation.yml +1 -1
- metadata +5 -7
- data/config/locales/hi.yml +0 -23
- data/config/locales/ms.yml +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a17cc09be2742af3a0e91af4ac4c2e3d4ab246ae10c31dc2c26b1138058f1846
|
4
|
+
data.tar.gz: afd2922bb83d113c1c4d16c240db9455d1d63478cd2e231fd4e27d3aebb01958
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a19c5616ec96c8c454077dd114f4aedd215725e1af274eadc05d2989812bc5bd3b4674b9a850af3b28f7171b9f60c7db7a89398a97cf3ad8ad3023482a8ddd1d
|
7
|
+
data.tar.gz: f6eb5a88f94cab3f1555d017f0fada8809661716739186382a5038d880596ba451e2791f616f03400d95ab44c739720feae6b3f677a8188e56f000172b365c8d
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
18.0.3 (Jan 7, 2022)
|
2
|
+
----------
|
3
|
+
* Change regexp to match standard ngrok URLs. [#1311](https://github.com/Shopify/shopify_app/pull/1311)
|
4
|
+
* Make `EnsureAuthenticatedLinks` compatible with AppBridge 2.0. [#1277](https://github.com/Shopify/shopify_app/pull/1277)
|
5
|
+
* Includes the `host` parameter when redirecting to the splash page in an unauthenticated state.
|
6
|
+
|
1
7
|
18.0.2 (Jun 15, 2021)
|
2
8
|
----------
|
3
9
|
* Added careers link to readme. [#1274](https://github.com/Shopify/shopify_app/pull/1274)
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
shopify_app (18.0.
|
5
|
-
browser_sniffer (~> 1.
|
4
|
+
shopify_app (18.0.3)
|
5
|
+
browser_sniffer (~> 1.4.0)
|
6
6
|
jwt (>= 2.2.3)
|
7
7
|
omniauth-rails_csrf_protection
|
8
8
|
omniauth-shopify-oauth2 (~> 2.3)
|
@@ -80,12 +80,12 @@ GEM
|
|
80
80
|
minitest (>= 5.1)
|
81
81
|
tzinfo (~> 2.0)
|
82
82
|
zeitwerk (~> 2.3)
|
83
|
-
addressable (2.
|
83
|
+
addressable (2.8.0)
|
84
84
|
public_suffix (>= 2.0.2, < 5.0)
|
85
85
|
ast (2.4.1)
|
86
86
|
binding_of_caller (0.8.0)
|
87
87
|
debug_inspector (>= 0.0.1)
|
88
|
-
browser_sniffer (1.
|
88
|
+
browser_sniffer (1.4.0)
|
89
89
|
builder (3.2.4)
|
90
90
|
byebug (11.1.3)
|
91
91
|
coderay (1.1.3)
|
@@ -94,32 +94,46 @@ GEM
|
|
94
94
|
crass (1.0.6)
|
95
95
|
debug_inspector (0.0.3)
|
96
96
|
erubi (1.10.0)
|
97
|
-
faraday (1.
|
97
|
+
faraday (1.9.3)
|
98
|
+
faraday-em_http (~> 1.0)
|
99
|
+
faraday-em_synchrony (~> 1.0)
|
98
100
|
faraday-excon (~> 1.1)
|
101
|
+
faraday-httpclient (~> 1.0)
|
102
|
+
faraday-multipart (~> 1.0)
|
99
103
|
faraday-net_http (~> 1.0)
|
100
|
-
faraday-net_http_persistent (~> 1.
|
101
|
-
|
104
|
+
faraday-net_http_persistent (~> 1.0)
|
105
|
+
faraday-patron (~> 1.0)
|
106
|
+
faraday-rack (~> 1.0)
|
107
|
+
faraday-retry (~> 1.0)
|
102
108
|
ruby2_keywords (>= 0.0.4)
|
109
|
+
faraday-em_http (1.0.0)
|
110
|
+
faraday-em_synchrony (1.0.0)
|
103
111
|
faraday-excon (1.1.0)
|
112
|
+
faraday-httpclient (1.0.1)
|
113
|
+
faraday-multipart (1.0.2)
|
114
|
+
multipart-post (>= 1.2, < 3)
|
104
115
|
faraday-net_http (1.0.1)
|
105
|
-
faraday-net_http_persistent (1.
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
116
|
+
faraday-net_http_persistent (1.2.0)
|
117
|
+
faraday-patron (1.0.0)
|
118
|
+
faraday-rack (1.0.0)
|
119
|
+
faraday-retry (1.0.3)
|
120
|
+
globalid (1.0.0)
|
121
|
+
activesupport (>= 5.0)
|
122
|
+
graphql (1.13.4)
|
123
|
+
graphql-client (0.17.0)
|
110
124
|
activesupport (>= 3.0)
|
111
|
-
graphql (~> 1.
|
125
|
+
graphql (~> 1.10)
|
112
126
|
hashdiff (1.0.1)
|
113
|
-
hashie (
|
127
|
+
hashie (5.0.0)
|
114
128
|
i18n (1.8.9)
|
115
129
|
concurrent-ruby (~> 1.0)
|
116
|
-
jwt (2.
|
130
|
+
jwt (2.3.0)
|
117
131
|
loofah (2.9.0)
|
118
132
|
crass (~> 1.0.2)
|
119
133
|
nokogiri (>= 1.5.9)
|
120
134
|
mail (2.7.1)
|
121
135
|
mini_mime (>= 0.1.1)
|
122
|
-
marcel (1.0.
|
136
|
+
marcel (1.0.2)
|
123
137
|
method_source (0.9.2)
|
124
138
|
mini_mime (1.0.3)
|
125
139
|
mini_portile2 (2.5.0)
|
@@ -128,7 +142,7 @@ GEM
|
|
128
142
|
multi_json (1.15.0)
|
129
143
|
multi_xml (0.6.0)
|
130
144
|
multipart-post (2.1.1)
|
131
|
-
nio4r (2.5.
|
145
|
+
nio4r (2.5.8)
|
132
146
|
nokogiri (1.11.2)
|
133
147
|
mini_portile2 (~> 2.5.0)
|
134
148
|
racc (~> 1.4)
|
@@ -142,7 +156,7 @@ GEM
|
|
142
156
|
hashie (>= 3.4.6)
|
143
157
|
rack (>= 1.6.2, < 3)
|
144
158
|
rack-protection
|
145
|
-
omniauth-oauth2 (1.7.
|
159
|
+
omniauth-oauth2 (1.7.2)
|
146
160
|
oauth2 (~> 1.4)
|
147
161
|
omniauth (>= 1.9, < 3)
|
148
162
|
omniauth-rails_csrf_protection (1.0.0)
|
@@ -220,20 +234,21 @@ GEM
|
|
220
234
|
rubocop-shopify (1.0.7)
|
221
235
|
rubocop (~> 1.4)
|
222
236
|
ruby-progressbar (1.10.1)
|
223
|
-
ruby2_keywords (0.0.
|
224
|
-
shopify_api (9.
|
237
|
+
ruby2_keywords (0.0.5)
|
238
|
+
shopify_api (9.5)
|
225
239
|
activeresource (>= 4.1.0, < 6.0.0)
|
226
240
|
graphql-client
|
227
241
|
rack
|
242
|
+
webrick
|
228
243
|
sprockets (4.0.2)
|
229
244
|
concurrent-ruby (~> 1.0)
|
230
245
|
rack (> 1, < 3)
|
231
|
-
sprockets-rails (3.
|
232
|
-
actionpack (>=
|
233
|
-
activesupport (>=
|
246
|
+
sprockets-rails (3.4.2)
|
247
|
+
actionpack (>= 5.2)
|
248
|
+
activesupport (>= 5.2)
|
234
249
|
sprockets (>= 3.0.0)
|
235
250
|
sqlite3 (1.4.2)
|
236
|
-
thor (1.1
|
251
|
+
thor (1.2.1)
|
237
252
|
tzinfo (2.0.4)
|
238
253
|
concurrent-ruby (~> 1.0)
|
239
254
|
unicode-display_width (1.7.0)
|
@@ -241,7 +256,8 @@ GEM
|
|
241
256
|
addressable (>= 2.3.6)
|
242
257
|
crack (>= 0.3.2)
|
243
258
|
hashdiff (>= 0.4.0, < 2.0.0)
|
244
|
-
|
259
|
+
webrick (1.7.0)
|
260
|
+
websocket-driver (0.7.5)
|
245
261
|
websocket-extensions (>= 0.1.0)
|
246
262
|
websocket-extensions (0.1.5)
|
247
263
|
zeitwerk (2.4.2)
|
@@ -265,4 +281,4 @@ DEPENDENCIES
|
|
265
281
|
webmock
|
266
282
|
|
267
283
|
BUNDLED WITH
|
268
|
-
2.
|
284
|
+
2.2.22
|
@@ -10,9 +10,22 @@ module ShopifyApp
|
|
10
10
|
|
11
11
|
private
|
12
12
|
|
13
|
+
def splash_page
|
14
|
+
splash_page_with_params(
|
15
|
+
return_to: request.fullpath,
|
16
|
+
shop: current_shopify_domain,
|
17
|
+
host: params[:host]
|
18
|
+
)
|
19
|
+
end
|
20
|
+
|
21
|
+
def splash_page_with_params(params)
|
22
|
+
uri = URI(root_path)
|
23
|
+
uri.query = params.compact.to_query
|
24
|
+
uri.to_s
|
25
|
+
end
|
26
|
+
|
13
27
|
def redirect_to_splash_page
|
14
|
-
|
15
|
-
redirect_to(splash_page_path)
|
28
|
+
redirect_to(splash_page)
|
16
29
|
rescue ShopifyApp::LoginProtection::ShopifyDomainNotFound => error
|
17
30
|
Rails.logger.warn("[ShopifyApp::EnsureAuthenticatedLinks] Redirecting to login: [#{error.class}] "\
|
18
31
|
"Could not determine current shop domain")
|
data/docs/shopify_app/engine.md
CHANGED
@@ -15,7 +15,7 @@ While you can customize the login view by creating a `/app/views/shopify_app/ses
|
|
15
15
|
|
16
16
|
```ruby
|
17
17
|
ShopifyApp.configure do |config|
|
18
|
-
config.login_url = 'https://
|
18
|
+
config.login_url = 'https://example.com/nested/login'
|
19
19
|
end
|
20
20
|
```
|
21
21
|
|
@@ -77,6 +77,6 @@ class ReviewsController < ApplicationController
|
|
77
77
|
end
|
78
78
|
```
|
79
79
|
|
80
|
-
Create your app proxy URL in the [Shopify Partners dashboard](https://partners.shopify.com/organizations), making sure to point it to `https://
|
80
|
+
Create your app proxy URL in the [Shopify Partners dashboard](https://partners.shopify.com/organizations), making sure to point it to `https://example.com/app_proxy`.
|
81
81
|
|
82
82
|
![Creating an App Proxy](/images/app-proxy-screenshot.png)
|
@@ -1,5 +1,15 @@
|
|
1
1
|
# Handling changes in access scopes
|
2
|
-
|
2
|
+
## Updating the list of scopes the app requests
|
3
|
+
|
4
|
+
Your app specifies the [access scopes](https://shopify.dev/api/usage/access-scopes) it requires in the Shopify App initializer, located at`config/initializers/shopify_app.rb`. To modify this list, update the comma-delimited configuration option:
|
5
|
+
|
6
|
+
```ruby
|
7
|
+
config.scope = "read_products,write_discounts"
|
8
|
+
```
|
9
|
+
|
10
|
+
## Requesting new scopes from merchants
|
11
|
+
|
12
|
+
The Shopify App gem will automatically request new scopes from merchants for both shop/offline and user/online tokens. To enable your app to reauth via OAuth on scope changes, you can set the following configuration flag in your `config/initializers/shopify_app.rb`:
|
3
13
|
```ruby
|
4
14
|
config.reauth_on_access_scope_changes = true
|
5
15
|
```
|
@@ -11,7 +11,7 @@ As with webhooks, ShopifyApp can manage your app's [ScriptTags](https://shopify-
|
|
11
11
|
```ruby
|
12
12
|
ShopifyApp.configure do |config|
|
13
13
|
config.scripttags = [
|
14
|
-
{event:'onload', src: 'https://
|
14
|
+
{event:'onload', src: 'https://example.com/fancy.js'},
|
15
15
|
{event:'onload', src: ->(domain) { dynamic_tag_url(domain) } }
|
16
16
|
]
|
17
17
|
end
|
@@ -12,7 +12,7 @@ ShopifyApp can manage your app's webhooks for you if you set which webhooks you
|
|
12
12
|
```ruby
|
13
13
|
ShopifyApp.configure do |config|
|
14
14
|
config.webhooks = [
|
15
|
-
{topic: 'carts/update', address: 'https://example
|
15
|
+
{topic: 'carts/update', address: 'https://example.com/webhooks/carts_update'}
|
16
16
|
]
|
17
17
|
end
|
18
18
|
```
|
@@ -34,7 +34,7 @@ If you are only interested in particular fields, you can optionally filter the d
|
|
34
34
|
```ruby
|
35
35
|
ShopifyApp.configure do |config|
|
36
36
|
config.webhooks = [
|
37
|
-
{topic: 'products/update', address: 'https://example
|
37
|
+
{topic: 'products/update', address: 'https://example.com/webhooks/products_update', fields: ['title', 'vendor']}
|
38
38
|
]
|
39
39
|
end
|
40
40
|
```
|
@@ -67,7 +67,7 @@ module ShopifyApp
|
|
67
67
|
def insert_hosts_into_development_config
|
68
68
|
inject_into_file(
|
69
69
|
'config/environments/development.rb',
|
70
|
-
" config.hosts = (config.hosts rescue []) <<
|
70
|
+
" config.hosts = (config.hosts rescue []) << /\[-\w]+\\.ngrok\\.io/\n",
|
71
71
|
after: "Rails.application.configure do\n"
|
72
72
|
)
|
73
73
|
end
|
data/lib/shopify_app/version.rb
CHANGED
data/package.json
CHANGED
data/shopify_app.gemspec
CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
|
|
13
13
|
|
14
14
|
s.metadata['allowed_push_host'] = 'https://rubygems.org'
|
15
15
|
|
16
|
-
s.add_runtime_dependency('browser_sniffer', '~> 1.
|
16
|
+
s.add_runtime_dependency('browser_sniffer', '~> 1.4.0')
|
17
17
|
s.add_runtime_dependency('omniauth-rails_csrf_protection')
|
18
18
|
s.add_runtime_dependency('rails', '> 5.2.1', '< 6.2')
|
19
19
|
s.add_runtime_dependency('shopify_api', '~> 9.4')
|
data/translation.yml
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
source_language: en
|
2
|
-
target_languages: [cs, da, de, es, fi, fr,
|
2
|
+
target_languages: [cs, da, de, es, fi, fr, it, ja, ko, nb, nl, pl, pt-BR, pt-PT, sv, th, tr, vi, zh-CN, zh-TW]
|
3
3
|
components:
|
4
4
|
- name: 'merchant'
|
5
5
|
paths:
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shopify_app
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 18.0.
|
4
|
+
version: 18.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: browser_sniffer
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.4.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: 1.4.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: omniauth-rails_csrf_protection
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -321,11 +321,9 @@ files:
|
|
321
321
|
- config/locales/es.yml
|
322
322
|
- config/locales/fi.yml
|
323
323
|
- config/locales/fr.yml
|
324
|
-
- config/locales/hi.yml
|
325
324
|
- config/locales/it.yml
|
326
325
|
- config/locales/ja.yml
|
327
326
|
- config/locales/ko.yml
|
328
|
-
- config/locales/ms.yml
|
329
327
|
- config/locales/nb.yml
|
330
328
|
- config/locales/nl.yml
|
331
329
|
- config/locales/pl.yml
|
@@ -461,7 +459,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
461
459
|
- !ruby/object:Gem::Version
|
462
460
|
version: '0'
|
463
461
|
requirements: []
|
464
|
-
rubygems_version: 3.2.
|
462
|
+
rubygems_version: 3.2.20
|
465
463
|
signing_key:
|
466
464
|
specification_version: 4
|
467
465
|
summary: This gem is used to get quickly started with the Shopify API
|
data/config/locales/hi.yml
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
---
|
2
|
-
hi:
|
3
|
-
logged_out: सफलतापूर्वक लॉग आउट कर दिया
|
4
|
-
could_not_log_in: Shopify स्टोर में लॉग इन नहीं किया जा सका
|
5
|
-
invalid_shop_url: अमान्य शॉप डोमेन
|
6
|
-
enable_cookies_heading: "%{app} के कुकीज़ सक्षम करें"
|
7
|
-
enable_cookies_body: आपको %{app} का उपयोग Shopify में करने के लिए इस ब्राउज़र में
|
8
|
-
कुकीज़ मैन्युअल रूप से सक्षम करने चाहिए.
|
9
|
-
enable_cookies_footer: कुकीज़ अस्थायी रूप से आपकी वरीयताएं और व्यक्तिगत जानकारी स्टोर
|
10
|
-
कर ऐप को आपको प्रमाणित करने देते हैं. इनकी समय-सीमा 30 दिनों बाद समाप्त हो जाती
|
11
|
-
है.
|
12
|
-
enable_cookies_action: कुकीज़ को सक्षम करें
|
13
|
-
top_level_interaction_heading: आपके ब्राउज़र को %{app} प्रमाणित करने की आवश्यकता
|
14
|
-
है
|
15
|
-
top_level_interaction_body: आपके ब्राउज़र को %{app} जैसे ऐप की ज़रूरत होती है, जो
|
16
|
-
Shopify द्वारा आपके लिए उसे खोलने से पहले कुकीज़ पर पहुंचने करने की अनुमति मांगे.
|
17
|
-
top_level_interaction_action: जारी रखें
|
18
|
-
request_storage_access_heading: "%{app} को कुकीज़ पर पहुंच करने की आवश्यकता है"
|
19
|
-
request_storage_access_body: यह आपकी व्यक्तिगत जानकारी अस्थायी रूप से स्टोर कर ऐप
|
20
|
-
को आपको प्रमाणित करने देता है. जारी रखें पर क्लिक करें और कुकीज़ को ऐप उपयोग करने
|
21
|
-
की अनुमति दें.
|
22
|
-
request_storage_access_footer: कुकीज़ की समय-सीमा 30 दिनों बाद समाप्त हो जाती है.
|
23
|
-
request_storage_access_action: जारी रखें
|
data/config/locales/ms.yml
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
---
|
2
|
-
ms:
|
3
|
-
logged_out: Berjaya log keluar
|
4
|
-
could_not_log_in: Tidak dapat log masuk ke kedai Shopify
|
5
|
-
invalid_shop_url: Domain kedai tidak sah
|
6
|
-
enable_cookies_heading: Dayakan kuki dari %{app}
|
7
|
-
enable_cookies_body: Anda mesti mengaktifkan kuki secara manual dalam pelayar ini
|
8
|
-
untuk %{app} digunakan dalam Shopify.
|
9
|
-
enable_cookies_footer: Kuki membenarkan aplikasi mengesahkan anda dengan menyimpan
|
10
|
-
keutamaan dan maklumat peribadi anda buat sementara waktu. Ia tamat tempoh selepas
|
11
|
-
30 hari.
|
12
|
-
enable_cookies_action: Dayakan kuki
|
13
|
-
top_level_interaction_heading: Pelayar anda perlu mengesahkan %{app}
|
14
|
-
top_level_interaction_body: Pelayar anda memerlukan aplikasi seperti %{app} untuk
|
15
|
-
meminta anda akses kepada kuki sebelum Shopify boleh membukanya untuk anda.
|
16
|
-
top_level_interaction_action: Teruskan
|
17
|
-
request_storage_access_heading: "%{app} memerlukan akses kepada kuki"
|
18
|
-
request_storage_access_body: Ini membolehkan aplikasi mengesahkan anda dengan menyimpan
|
19
|
-
maklumat peribadi anda buat sementara waktu. Klik teruskan dan benarkan kuki untuk
|
20
|
-
menggunakan aplikasi.
|
21
|
-
request_storage_access_footer: Kuki akan tamat tempoh selepas 30 hari.
|
22
|
-
request_storage_access_action: Teruskan
|