shopify_app 8.4.0 → 8.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.ruby-version +1 -0
- data/.travis.yml +2 -3
- data/CHANGELOG.md +10 -1
- data/README.md +15 -26
- data/app/assets/javascripts/shopify_app/storage_access.js +8 -3
- data/docs/Releasing.md +1 -0
- data/lib/shopify_app/controller_concerns/itp.rb +4 -4
- data/lib/shopify_app/version.rb +1 -1
- data/package.json +1 -1
- data/shipit.rubygems.yml +1 -1
- data/shopify_app.gemspec +2 -2
- metadata +10 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 8c695f515629401adce7691c5c22417b77a2b56a1e3a267d179ebffe200690c5
|
4
|
+
data.tar.gz: c24e3011bea73560b4c5e72add9d68ee379a0bf59929015080e382dc08276bd1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb5d3161cf7711ad28a1031be1c28fe35a80f8ca39bd5fac7fbcae8d10e3ed8752ca2df9d8b20848a21e585ba696876da604cf0392150aaa9e1261792e7169b5
|
7
|
+
data.tar.gz: eab9ff64fd7929b6bc9e1ae96dd92f4c055d756722607226b11707bd8f3045bc61c07868c11070a09bd93da70b996e6828ce66ce9854ea31dee6b628fe252107
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.5.0
|
data/.travis.yml
CHANGED
@@ -6,9 +6,9 @@ before_script:
|
|
6
6
|
- "sudo chown root /opt/google/chrome/chrome-sandbox"
|
7
7
|
- "sudo chmod 4755 /opt/google/chrome/chrome-sandbox"
|
8
8
|
language: ruby
|
9
|
-
before_install:
|
9
|
+
before_install:
|
10
10
|
- gem update --system
|
11
|
-
cache:
|
11
|
+
cache:
|
12
12
|
bundler: true
|
13
13
|
directories:
|
14
14
|
- node_modules
|
@@ -27,4 +27,3 @@ install:
|
|
27
27
|
script:
|
28
28
|
- yarn test
|
29
29
|
- bundle exec rake test
|
30
|
-
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
8.4.1
|
2
|
+
-----
|
3
|
+
* Update README and Releasing.md
|
4
|
+
* Allow user agent to not be set
|
5
|
+
* Remove legacy EASDK examples
|
6
|
+
* Add .ruby-version file
|
7
|
+
* Clean up omniauth setup and fix examples
|
8
|
+
* Fix infinite redirect loops if users have disabled 3rd party cookies in their browser
|
9
|
+
|
1
10
|
8.4.0
|
2
11
|
----
|
3
12
|
* Fix embedded app session management in Safari 12.1
|
@@ -18,7 +27,7 @@
|
|
18
27
|
|
19
28
|
8.2.6
|
20
29
|
----
|
21
|
-
* Sanitize the shop query param to include `.myshopify.com` if no domain was provided
|
30
|
+
* Sanitize the shop query param to include `.myshopify.com` if no domain was provided
|
22
31
|
|
23
32
|
8.2.5
|
24
33
|
----
|
data/README.md
CHANGED
@@ -15,6 +15,7 @@ Table of Contents
|
|
15
15
|
* [**Description**](#description)
|
16
16
|
* [**Quickstart**](#quickstart)
|
17
17
|
* [**Becoming a Shopify App Developer**](#becoming-a-shopify-app-developer)
|
18
|
+
* [**App Tunneling**](#app-tunneling)
|
18
19
|
* [**Installation**](#installation)
|
19
20
|
* [Rails Compatibility](#rails-compatibility)
|
20
21
|
* [**Generators**](#generators)
|
@@ -36,7 +37,6 @@ Table of Contents
|
|
36
37
|
* [**Troubleshooting**](#troubleshooting)
|
37
38
|
* [Generator shopify_app:install hangs](#generator-shopify_appinstall-hangs)
|
38
39
|
* [**Testing an embedded app outside the Shopify admin**](#testing-an-embedded-app-outside-the-shopify-admin)
|
39
|
-
* [**App Tunneling**](#app-tunneling)
|
40
40
|
* [**Questions or problems?**](#questions-or-problems)
|
41
41
|
|
42
42
|
|
@@ -58,26 +58,22 @@ Check out this screencast on how to create and deploy a new Shopify App to Herok
|
|
58
58
|
|
59
59
|
Or if you prefer text instructions the steps in the video are written out [here](https://github.com/Shopify/shopify_app/blob/master/docs/Quickstart.md)
|
60
60
|
|
61
|
-
|
62
|
-
|
63
|
-
If you don't have a Shopify Partner account yet head over to http://shopify.com/partners to create one, you'll need it before you can start developing apps.
|
64
|
-
|
65
|
-
Once you have a Partner account create a new application to get an Api key and other Api credentials. To create a development application set the Application Callback URL to
|
61
|
+
App Tunneling
|
62
|
+
-------------
|
66
63
|
|
67
|
-
|
68
|
-
http://localhost:3000/
|
69
|
-
```
|
64
|
+
Your local app needs to be accessible from the public Internet in order to install it on a shop, use the [App Proxy Controller](#app-proxy-controller-generator) or receive Webhooks. Use a tunneling service like [ngrok](https://ngrok.com/), [Forward](https://forwardhq.com/), [Beeceptor](https://beeceptor.com/), [Mockbin](http://mockbin.org/), [Hookbin](https://hookbin.com/), etc.
|
70
65
|
|
71
|
-
|
66
|
+
For example with [ngrok](https://ngrok.com/), run this command to set up proxying to Rails' default port:
|
72
67
|
|
68
|
+
```sh
|
69
|
+
ngrok http 3000
|
73
70
|
```
|
74
|
-
http://localhost:3000/auth/shopify/callback
|
75
|
-
```
|
76
|
-
|
77
|
-
This way you'll be able to run the app on your local machine.
|
78
71
|
|
79
|
-
|
72
|
+
Becoming a Shopify App Developer
|
73
|
+
--------------------------------
|
74
|
+
If you don't have a Shopify Partner account yet head over to http://shopify.com/partners to create one, you'll need it before you can start developing apps.
|
80
75
|
|
76
|
+
Once you have a Partner account create a new application to get an API key and other API credentials. To create a development application set the `App URL` to the URL provided by [your tunnel](#app-tunneling) or `http://localhost:3000/` if you are not embeddeding your app inside the admin or receiving webhooks and the `Whitelisted redirection URL(s)` to contain `<App URL>/auth/shopify/callback`. Ensure you are using `https://` URLs if you are using tunneling.
|
81
77
|
|
82
78
|
Installation
|
83
79
|
------------
|
@@ -125,9 +121,9 @@ $ rails generate shopify_app:install --api_key <your_api_key> --secret <your_app
|
|
125
121
|
```
|
126
122
|
|
127
123
|
Other options include:
|
128
|
-
* `application_name` - the name of your app, it can be supplied with or without double-quotes if a whitespace is present. (e.g. `--application_name Example App` or `--application_name "Example App"`)
|
129
|
-
* `scope` - the Oauth access scope required for your app, eg **read_products, write_orders**. *Multiple options* need to be delimited by a comma-space, and can be supplied with or without double-quotes
|
130
|
-
(e.g. `--scope read_products, write_orders, write_products` or `--scope "read_products, write_orders, write_products"`)
|
124
|
+
* `application_name` - the name of your app, it can be supplied with or without double-quotes if a whitespace is present. (e.g. `--application_name Example App` or `--application_name "Example App"`)
|
125
|
+
* `scope` - the Oauth access scope required for your app, eg **read_products, write_orders**. *Multiple options* need to be delimited by a comma-space, and can be supplied with or without double-quotes
|
126
|
+
(e.g. `--scope read_products, write_orders, write_products` or `--scope "read_products, write_orders, write_products"`)
|
131
127
|
For more information, refer the [docs](http://docs.shopify.com/api/tutorials/oauth).
|
132
128
|
* `embedded` - the default is to generate an [embedded app](http://docs.shopify.com/embedded-app-sdk), if you want a legacy non-embedded app then set this to false, `--embedded false`
|
133
129
|
|
@@ -409,19 +405,12 @@ see [TROUBLESHOOTING.md](https://github.com/Shopify/shopify_app/blob/master/docs
|
|
409
405
|
Testing an embedded app outside the Shopify admin
|
410
406
|
-------------------------------------------------
|
411
407
|
|
412
|
-
By default, loading your embedded app will redirect to the Shopify admin, with the app view loaded in an `iframe`. If you need to load your app outside of the Shopify admin (e.g., for performance testing), you can change `forceRedirect:
|
408
|
+
By default, loading your embedded app will redirect to the Shopify admin, with the app view loaded in an `iframe`. If you need to load your app outside of the Shopify admin (e.g., for performance testing), you can change `forceRedirect: true` to `false` in `ShopifyApp.init` block in the `embedded_app` view. To keep the redirect on in production but off in your `development` and `test` environments, you can use:
|
413
409
|
|
414
410
|
```javascript
|
415
411
|
forceRedirect: <%= Rails.env.development? || Rails.env.test? ? 'false' : 'true' %>
|
416
412
|
```
|
417
413
|
|
418
|
-
App Tunneling
|
419
|
-
-------------
|
420
|
-
|
421
|
-
For certain features like Application Proxy or Webhooks to receive requests from Shopify, your app needs to be on a publicly visible URL. This can be a hurdle during development or testing on a local machine. Fortunately, this can be overcome by employing a tunneling service like [Forward](https://forwardhq.com/), [RequestBin](https://requestb.in/), [ngrok](https://ngrok.com/) etc. These tools allow you to create a secure tunnel from the public Internet to your local machine.
|
422
|
-
|
423
|
-
Tunneling is also useful for working the the embedded app sdk to solve mixed content issues since most tunnles provide ssl.
|
424
|
-
|
425
414
|
Questions or problems?
|
426
415
|
----------------------
|
427
416
|
|
@@ -33,9 +33,14 @@
|
|
33
33
|
}
|
34
34
|
|
35
35
|
StorageAccessHelper.prototype.grantedStorageAccess = function() {
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
try {
|
37
|
+
sessionStorage.setItem('shopify.granted_storage_access', true);
|
38
|
+
document.cookie = 'shopify.granted_storage_access=true';
|
39
|
+
this.redirectToAppHome();
|
40
|
+
} catch (error) {
|
41
|
+
console.warn('Third party cookies may be blocked.', error);
|
42
|
+
this.redirectToAppTLD(ACCESS_DENIED_STATUS);
|
43
|
+
}
|
39
44
|
}
|
40
45
|
|
41
46
|
StorageAccessHelper.prototype.handleRequestStorageAccess = function() {
|
data/docs/Releasing.md
CHANGED
@@ -3,6 +3,7 @@ Releasing ShopifyApp
|
|
3
3
|
1. Check the Semantic Versioning page for info on how to version the new release: http://semver.org
|
4
4
|
2. Create a pull request with the following changes:
|
5
5
|
* Update the version of ShopifyApp in lib/shopify_app/version.rb
|
6
|
+
* Update the version in package.json
|
6
7
|
* Add a CHANGELOG entry for the new release with the date
|
7
8
|
* Change the title of the PR to something like: "Packaging for release X.Y.Z"
|
8
9
|
3. Merge your pull request
|
@@ -23,23 +23,23 @@ module ShopifyApp
|
|
23
23
|
def user_agent_is_mobile
|
24
24
|
user_agent = BrowserSniffer.new(request.user_agent).browser_info
|
25
25
|
|
26
|
-
user_agent[:name].match(/Shopify\sMobile/)
|
26
|
+
user_agent[:name].to_s.match(/Shopify\sMobile/)
|
27
27
|
end
|
28
28
|
|
29
29
|
def user_agent_is_pos
|
30
30
|
user_agent = BrowserSniffer.new(request.user_agent).browser_info
|
31
31
|
|
32
|
-
user_agent[:name].match(/Shopify\sPOS/)
|
32
|
+
user_agent[:name].to_s.match(/Shopify\sPOS/)
|
33
33
|
end
|
34
34
|
|
35
35
|
def user_agent_can_partition_cookies
|
36
36
|
user_agent = BrowserSniffer.new(request.user_agent).browser_info
|
37
37
|
|
38
|
-
is_safari = user_agent[:name].match(/Safari/)
|
38
|
+
is_safari = user_agent[:name].to_s.match(/Safari/)
|
39
39
|
|
40
40
|
return false unless is_safari
|
41
41
|
|
42
|
-
user_agent[:version].match(/12
|
42
|
+
user_agent[:version].to_s.match(/12\.0/)
|
43
43
|
end
|
44
44
|
end
|
45
45
|
end
|
data/lib/shopify_app/version.rb
CHANGED
data/package.json
CHANGED
data/shipit.rubygems.yml
CHANGED
data/shopify_app.gemspec
CHANGED
@@ -13,11 +13,11 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.add_runtime_dependency('browser_sniffer', '~> 1.1.0')
|
14
14
|
s.add_runtime_dependency('rails', '>= 5.0.0')
|
15
15
|
s.add_runtime_dependency('shopify_api', '>= 4.3.5')
|
16
|
-
s.add_runtime_dependency('omniauth-shopify-oauth2', '~>
|
16
|
+
s.add_runtime_dependency('omniauth-shopify-oauth2', '~> 2.0.0')
|
17
17
|
|
18
18
|
s.add_development_dependency('rake')
|
19
19
|
s.add_development_dependency('byebug')
|
20
|
-
s.add_development_dependency('sqlite3')
|
20
|
+
s.add_development_dependency('sqlite3', '~> 1.3.6')
|
21
21
|
s.add_development_dependency('minitest')
|
22
22
|
s.add_development_dependency('mocha')
|
23
23
|
|
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: 8.4.
|
4
|
+
version: 8.4.1
|
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: 2019-02-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: browser_sniffer
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 2.0.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 2.0.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,16 +98,16 @@ dependencies:
|
|
98
98
|
name: sqlite3
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - "
|
101
|
+
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: 1.3.6
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - "
|
108
|
+
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
110
|
+
version: 1.3.6
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: minitest
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -149,6 +149,7 @@ files:
|
|
149
149
|
- ".gitignore"
|
150
150
|
- ".nvmrc"
|
151
151
|
- ".rubocop.yml"
|
152
|
+
- ".ruby-version"
|
152
153
|
- ".travis.yml"
|
153
154
|
- CHANGELOG.md
|
154
155
|
- Gemfile
|
@@ -264,7 +265,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
264
265
|
version: '0'
|
265
266
|
requirements: []
|
266
267
|
rubyforge_project:
|
267
|
-
rubygems_version: 2.6
|
268
|
+
rubygems_version: 2.7.6
|
268
269
|
signing_key:
|
269
270
|
specification_version: 4
|
270
271
|
summary: This gem is used to get quickly started with the Shopify API
|