shopify_app 21.0.0 → 22.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/CODEOWNERS +1 -0
- data/.github/ISSUE_TEMPLATE/ENHANCEMENT.md +9 -0
- data/.github/ISSUE_TEMPLATE/bug-report.md +30 -47
- data/.github/ISSUE_TEMPLATE/feature-request.md +5 -29
- data/.github/workflows/build.yml +11 -12
- data/.github/workflows/release.yml +2 -2
- data/.github/workflows/remove-labels-on-activity.yml +1 -1
- data/.github/workflows/rubocop.yml +2 -3
- data/.nvmrc +1 -1
- data/.rubocop.yml +2 -1
- data/.ruby-version +1 -1
- data/.spin/rails/prepare-application +8 -0
- data/CHANGELOG.md +173 -7
- data/CODE_OF_CONDUCT.md +46 -0
- data/CONTRIBUTING.md +16 -6
- data/Gemfile +1 -0
- data/Gemfile.lock +160 -121
- data/README.md +67 -19
- data/SECURITY.md +1 -1
- data/app/assets/javascripts/shopify_app/redirect.js +3 -10
- data/app/controllers/concerns/shopify_app/ensure_authenticated_links.rb +9 -4
- data/app/controllers/concerns/shopify_app/ensure_has_session.rb +25 -0
- data/app/controllers/concerns/shopify_app/ensure_installed.rb +84 -0
- data/app/controllers/concerns/shopify_app/shop_access_scopes_verification.rb +5 -1
- data/app/controllers/shopify_app/authenticated_controller.rb +1 -1
- data/app/controllers/shopify_app/callback_controller.rb +101 -39
- data/app/controllers/shopify_app/extension_verification_controller.rb +4 -1
- data/app/controllers/shopify_app/sessions_controller.rb +37 -7
- data/app/controllers/shopify_app/webhooks_controller.rb +1 -1
- data/app/views/shopify_app/layouts/app_bridge.html.erb +17 -0
- data/app/views/shopify_app/sessions/patch_shopify_id_token.html.erb +0 -0
- data/app/views/shopify_app/shared/redirect.html.erb +10 -1
- data/config/locales/cs.yml +0 -18
- data/config/locales/da.yml +0 -15
- data/config/locales/de.yml +0 -17
- data/config/locales/en.yml +0 -11
- data/config/locales/es.yml +0 -17
- data/config/locales/fi.yml +0 -15
- data/config/locales/fr.yml +0 -18
- data/config/locales/it.yml +0 -16
- data/config/locales/ja.yml +0 -12
- data/config/locales/ko.yml +0 -14
- data/config/locales/nb.yml +0 -16
- data/config/locales/nl.yml +0 -16
- data/config/locales/pl.yml +0 -16
- data/config/locales/pt-BR.yml +0 -16
- data/config/locales/pt-PT.yml +0 -17
- data/config/locales/sv.yml +0 -16
- data/config/locales/th.yml +0 -15
- data/config/locales/tr.yml +0 -17
- data/config/locales/vi.yml +0 -17
- data/config/locales/zh-CN.yml +0 -11
- data/config/locales/zh-TW.yml +0 -11
- data/config/routes.rb +2 -1
- data/docs/Quickstart.md +14 -5
- data/docs/Troubleshooting.md +38 -25
- data/docs/Upgrading.md +103 -32
- data/docs/shopify_app/authentication.md +179 -58
- data/docs/shopify_app/controller-concerns.md +89 -0
- data/docs/shopify_app/engine.md +2 -11
- data/docs/shopify_app/generators.md +2 -2
- data/docs/shopify_app/logging.md +21 -0
- data/docs/shopify_app/sessions.md +358 -0
- data/docs/shopify_app/testing.md +32 -10
- data/docs/shopify_app/webhooks.md +97 -7
- data/karma.conf.js +6 -4
- data/lib/generators/shopify_app/add_after_authenticate_job/add_after_authenticate_job_generator.rb +6 -3
- data/lib/generators/shopify_app/add_after_authenticate_job/templates/after_authenticate_job.rb +1 -1
- data/lib/generators/shopify_app/add_app_uninstalled_job/add_app_uninstalled_job_generator.rb +15 -0
- data/lib/generators/shopify_app/add_app_uninstalled_job/templates/app_uninstalled_job.rb.tt +22 -0
- data/lib/generators/shopify_app/add_declarative_webhook/add_declarative_webhook_generator.rb +53 -0
- data/lib/generators/shopify_app/add_declarative_webhook/templates/webhook_controller.rb.tt +13 -0
- data/lib/generators/shopify_app/add_declarative_webhook/templates/webhook_job.rb.tt +15 -0
- data/lib/generators/shopify_app/add_privacy_jobs/add_privacy_jobs_generator.rb +23 -0
- data/lib/generators/shopify_app/add_privacy_jobs/templates/customers_data_request_job.rb.tt +22 -0
- data/lib/generators/shopify_app/add_privacy_jobs/templates/customers_redact_job.rb.tt +22 -0
- data/lib/generators/shopify_app/add_privacy_jobs/templates/shop_redact_job.rb.tt +22 -0
- data/lib/generators/shopify_app/add_webhook/add_webhook_generator.rb +8 -3
- data/lib/generators/shopify_app/add_webhook/templates/webhook_job.rb.tt +4 -2
- data/lib/generators/shopify_app/app_proxy_controller/app_proxy_controller_generator.rb +1 -1
- data/lib/generators/shopify_app/authenticated_controller/templates/authenticated_controller.rb +1 -1
- data/lib/generators/shopify_app/home_controller/templates/index.html.erb +1 -1
- data/lib/generators/shopify_app/home_controller/templates/unauthenticated_home_controller.rb +1 -1
- data/lib/generators/shopify_app/install/install_generator.rb +4 -4
- data/lib/generators/shopify_app/install/templates/shopify_app.rb.tt +13 -3
- data/lib/generators/shopify_app/rotate_shopify_token_job/templates/rotate_shopify_token.rake +1 -1
- data/lib/generators/shopify_app/rotate_shopify_token_job/templates/rotate_shopify_token_job.rb +1 -1
- data/lib/generators/shopify_app/routes/routes_generator.rb +1 -1
- data/lib/generators/shopify_app/shop_model/shop_model_generator.rb +1 -1
- data/lib/generators/shopify_app/shop_model/templates/db/migrate/add_shop_access_scopes_column.erb +1 -1
- data/lib/generators/shopify_app/shopify_app_generator.rb +2 -0
- data/lib/generators/shopify_app/user_model/templates/db/migrate/add_user_access_scopes_column.erb +1 -1
- data/lib/generators/shopify_app/user_model/templates/db/migrate/add_user_expires_at_column.erb +5 -0
- data/lib/generators/shopify_app/user_model/user_model_generator.rb +21 -1
- data/lib/shopify_app/access_scopes/noop_strategy.rb +4 -0
- data/lib/shopify_app/access_scopes/user_strategy.rb +9 -2
- data/lib/shopify_app/admin_api/with_token_refetch.rb +27 -0
- data/lib/shopify_app/auth/post_authenticate_tasks.rb +48 -0
- data/lib/shopify_app/auth/token_exchange.rb +73 -0
- data/lib/shopify_app/configuration.rb +82 -1
- data/lib/shopify_app/controller_concerns/app_proxy_verification.rb +3 -3
- data/lib/shopify_app/controller_concerns/csrf_protection.rb +2 -1
- data/lib/shopify_app/controller_concerns/embedded_app.rb +42 -3
- data/lib/shopify_app/controller_concerns/ensure_billing.rb +28 -12
- data/lib/shopify_app/controller_concerns/frame_ancestors.rb +1 -1
- data/lib/shopify_app/controller_concerns/localization.rb +11 -8
- data/lib/shopify_app/controller_concerns/login_protection.rb +83 -38
- data/lib/shopify_app/controller_concerns/payload_verification.rb +1 -1
- data/lib/shopify_app/controller_concerns/redirect_for_embedded.rb +15 -3
- data/lib/shopify_app/controller_concerns/sanitized_params.rb +5 -0
- data/lib/shopify_app/controller_concerns/token_exchange.rb +111 -0
- data/lib/shopify_app/controller_concerns/webhook_verification.rb +4 -1
- data/lib/shopify_app/controller_concerns/with_shopify_id_token.rb +48 -0
- data/lib/shopify_app/engine.rb +7 -8
- data/lib/shopify_app/logger.rb +28 -0
- data/lib/shopify_app/managers/webhooks_manager.rb +20 -10
- data/lib/shopify_app/middleware/jwt_middleware.rb +13 -9
- data/lib/shopify_app/session/in_memory_user_session_store.rb +1 -1
- data/lib/shopify_app/session/jwt.rb +11 -2
- data/lib/shopify_app/session/session_repository.rb +66 -14
- data/lib/shopify_app/session/session_storage.rb +2 -2
- data/lib/shopify_app/session/shop_session_storage.rb +5 -1
- data/lib/shopify_app/session/shop_session_storage_with_scopes.rb +5 -1
- data/lib/shopify_app/session/user_session_storage.rb +6 -2
- data/lib/shopify_app/session/user_session_storage_with_scopes.rb +27 -2
- data/lib/shopify_app/test_helpers/all.rb +1 -0
- data/lib/shopify_app/test_helpers/shopify_session_helper.rb +16 -0
- data/lib/shopify_app/utils.rb +82 -20
- data/lib/shopify_app/version.rb +1 -1
- data/lib/shopify_app.rb +12 -3
- data/package.json +5 -6
- data/service.yml +0 -2
- data/shopify_app.gemspec +6 -5
- data/translation.yml +1 -0
- data/yarn.lock +2139 -3910
- metadata +78 -58
- data/.github/workflows/stale.yml +0 -31
- data/app/assets/images/storage_access.svg +0 -1
- data/app/assets/javascripts/shopify_app/app_bridge_3.1.1.js +0 -10
- data/app/assets/javascripts/shopify_app/app_bridge_redirect.js +0 -22
- data/app/assets/javascripts/shopify_app/app_bridge_utils_3.1.1.js +0 -1
- data/app/assets/javascripts/shopify_app/enable_cookies.js +0 -3
- data/app/assets/javascripts/shopify_app/itp_helper.js +0 -40
- data/app/assets/javascripts/shopify_app/partition_cookies.js +0 -8
- data/app/assets/javascripts/shopify_app/post_redirect.js +0 -9
- data/app/assets/javascripts/shopify_app/request_storage_access.js +0 -3
- data/app/assets/javascripts/shopify_app/storage_access.js +0 -148
- data/app/assets/javascripts/shopify_app/storage_access_redirect.js +0 -17
- data/app/assets/javascripts/shopify_app/top_level.js +0 -2
- data/app/assets/javascripts/shopify_app/top_level_interaction.js +0 -11
- data/app/controllers/concerns/shopify_app/authenticated.rb +0 -19
- data/app/controllers/concerns/shopify_app/require_known_shop.rb +0 -48
- data/app/views/shopify_app/sessions/enable_cookies.html.erb +0 -70
- data/app/views/shopify_app/sessions/request_storage_access.html.erb +0 -68
- data/app/views/shopify_app/sessions/top_level_interaction.html.erb +0 -63
- data/app/views/shopify_app/shared/post_redirect_to_auth_shopify.html.erb +0 -13
- data/docs/shopify_app/script-tags.md +0 -28
- data/docs/shopify_app/session-repository.md +0 -88
- data/lib/generators/shopify_app/add_marketing_activity_extension/add_marketing_activity_extension_generator.rb +0 -41
- data/lib/generators/shopify_app/add_marketing_activity_extension/templates/marketing_activities_controller.rb +0 -62
- data/lib/shopify_app/controller_concerns/itp.rb +0 -45
- data/lib/shopify_app/jobs/scripttags_manager_job.rb +0 -16
- data/lib/shopify_app/managers/scripttags_manager.rb +0 -84
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8a8d6fb5b227bbe3070fba9050497eb007e4191a782bc89b12a84546470ed65
|
4
|
+
data.tar.gz: 5f8d8e4486585b07a93ad7f6abddaebde7a263568dc78e757627476aba37d38b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a0b7ad073c42b6fbe5033aa686fa365050d8d56305507746b15f938a1511e979eecd49dcaefbe2793114c6ca4c4ef4f986085b743651115dc816faab404da15
|
7
|
+
data.tar.gz: a8896ed834816ef8fd35f17db67aef3efcd401fa2a46900e2a2bce8d5b96f863db3eaa0335e73d63b6c48e6382d52d9103c46fce7a7252568e1abe7e503d2075
|
data/.github/CODEOWNERS
CHANGED
@@ -1,63 +1,46 @@
|
|
1
1
|
---
|
2
|
-
name: Bug
|
3
|
-
about:
|
4
|
-
labels:
|
2
|
+
name: "🐛 Bug Report"
|
3
|
+
about: Something isn't working
|
4
|
+
labels: "Type: Bug 🐛"
|
5
5
|
---
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
Do you want to ask a question? Are you looking for support? The Shopify Community forum is the best place for getting support: https://community.shopify.com
|
7
|
+
# Issue summary
|
10
8
|
|
11
|
-
|
9
|
+
Before opening this issue, I have:
|
12
10
|
|
13
|
-
|
11
|
+
- [ ] Upgraded to the latest version of the package
|
12
|
+
- `shopify_app` version:
|
13
|
+
- Ruby version:
|
14
|
+
- Operating system:
|
15
|
+
- [ ] Set `log_level: :debug` [in my configuration](https://github.com/Shopify/shopify-api-ruby#setup-shopify-context), if applicable
|
16
|
+
- [ ] Found a reliable way to reproduce the problem that indicates it's a problem with the package
|
17
|
+
- [ ] Looked for similar issues in this repository
|
18
|
+
- [ ] Checked that this isn't an issue with a Shopify API
|
19
|
+
- If it is, please create a post in the [Shopify community forums](https://community.shopify.com/c/partners-and-developers/ct-p/appdev) or report it to [Shopify Partner Support](https://help.shopify.com/en/support/partners/org-select)
|
14
20
|
|
15
|
-
|
21
|
+
<!--
|
22
|
+
Write a short description of the issue here.
|
16
23
|
|
24
|
+
We can only fix issues for which there is a clear reproduction scenario.
|
25
|
+
The more context you can provide, the easier it becomes for us to investigate and fix the issue.
|
17
26
|
-->
|
18
27
|
|
19
|
-
|
20
|
-
|
21
|
-
<!-- Description of the issue -->
|
22
|
-
|
23
|
-
### Steps to Reproduce
|
24
|
-
|
25
|
-
1. <!-- First Step -->
|
26
|
-
2. <!-- Second Step -->
|
27
|
-
3. <!-- and so on… -->
|
28
|
-
|
29
|
-
**Expected behavior:**
|
30
|
-
|
31
|
-
<!-- What you expect to happen -->
|
32
|
-
|
33
|
-
**Actual behavior:**
|
34
|
-
|
35
|
-
<!-- What actually happens -->
|
36
|
-
|
37
|
-
**Reproduces how often:**
|
38
|
-
|
39
|
-
<!-- What percentage of the time does it reproduce? -->
|
40
|
-
|
41
|
-
### Browsers
|
42
|
-
|
43
|
-
<!-- Please specify the browser(s) you have tested that exhibit this behaviour. -->
|
44
|
-
|
45
|
-
### Gem versions
|
46
|
-
|
47
|
-
<!-- Please specify which version(s) of the gem exhibit this behaviour. -->
|
48
|
-
|
49
|
-
### Additional Information
|
28
|
+
## Expected behavior
|
50
29
|
|
51
|
-
|
30
|
+
What do you think should happen?
|
52
31
|
|
53
|
-
|
54
|
-
<!-- - [x] My app is intended to be a non-embedded app -->
|
55
|
-
<!-- - [x] My app uses session tokens -->
|
32
|
+
## Actual behavior
|
56
33
|
|
34
|
+
What actually happens?
|
57
35
|
|
58
|
-
|
36
|
+
## Steps to reproduce the problem
|
59
37
|
|
60
|
-
|
38
|
+
1.
|
39
|
+
1.
|
40
|
+
1.
|
61
41
|
|
62
|
-
|
42
|
+
## Debug logs
|
63
43
|
|
44
|
+
```
|
45
|
+
// Paste any relevant logs here
|
46
|
+
```
|
@@ -1,33 +1,9 @@
|
|
1
1
|
---
|
2
|
-
name: Feature
|
3
|
-
about:
|
4
|
-
labels:
|
2
|
+
name: "🙌 Feature Request"
|
3
|
+
about: Suggest a new feature, or changes to an existing one
|
4
|
+
labels: "Type: Feature Request :raised_hands:"
|
5
5
|
---
|
6
6
|
|
7
|
-
|
7
|
+
## Overview
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
You can also join the Partners Slack Community group: https://www.shopify.com/partners/community#conversation
|
12
|
-
|
13
|
-
---
|
14
|
-
|
15
|
-
Please note that the team that maintains this gem has finite resources so it's unlikely that we'll work on feature requests. If we're interested in a particular feature however, we'll follow up and ask for more detail.
|
16
|
-
|
17
|
-
-->
|
18
|
-
|
19
|
-
### Summary
|
20
|
-
|
21
|
-
<!-- One paragraph explanation of the feature or suggestions. -->
|
22
|
-
|
23
|
-
### Motivation
|
24
|
-
|
25
|
-
<!-- Why is this feature or suggestion needed? What is the expected outcome? -->
|
26
|
-
|
27
|
-
### Describe alternatives you've considered
|
28
|
-
|
29
|
-
<!-- A clear and concise description of the alternative solutions you've considered. -->
|
30
|
-
|
31
|
-
### Additional context
|
32
|
-
|
33
|
-
<!-- Add any other context or screenshots about the feature request here. -->
|
9
|
+
<!-- Write a short description of the request here ↓ -->
|
data/.github/workflows/build.yml
CHANGED
@@ -12,12 +12,12 @@ jobs:
|
|
12
12
|
name: Ruby ${{ matrix.version }}
|
13
13
|
strategy:
|
14
14
|
matrix:
|
15
|
-
version: ['
|
15
|
+
version: ['3.0', '3.1', '3.2', '3.3']
|
16
16
|
|
17
17
|
steps:
|
18
|
-
- uses: actions/checkout@
|
18
|
+
- uses: actions/checkout@v3
|
19
19
|
- name: Cache node modules
|
20
|
-
uses: actions/cache@
|
20
|
+
uses: actions/cache@v3
|
21
21
|
with:
|
22
22
|
# npm cache files are stored in `~/.npm` on Linux/macOS
|
23
23
|
path: ~/.npm
|
@@ -28,13 +28,12 @@ jobs:
|
|
28
28
|
ruby-version: ${{ matrix.version }}
|
29
29
|
bundler-cache: true
|
30
30
|
- name: Set up Node
|
31
|
-
uses: actions/setup-node@
|
31
|
+
uses: actions/setup-node@v3
|
32
32
|
with:
|
33
|
-
node-version: '
|
34
|
-
- name: Install Dependencies
|
35
|
-
run:
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
bundle exec rake test
|
33
|
+
node-version: '18'
|
34
|
+
- name: Install Yarn Dependencies
|
35
|
+
run: yarn
|
36
|
+
- name: Run Yarn Tests
|
37
|
+
run: yarn test
|
38
|
+
- name: Run Ruby Tests
|
39
|
+
run: bundle exec rake test
|
@@ -11,8 +11,8 @@ jobs:
|
|
11
11
|
steps:
|
12
12
|
- name: Extract tag name
|
13
13
|
id: tag
|
14
|
-
run: echo "
|
15
|
-
- uses: actions/checkout@
|
14
|
+
run: echo "value=${GITHUB_REF##*/}" >> "$GITHUB_OUTPUT"
|
15
|
+
- uses: actions/checkout@v3
|
16
16
|
|
17
17
|
- name: Create Release
|
18
18
|
id: create_release
|
@@ -7,7 +7,7 @@ jobs:
|
|
7
7
|
remove-labels-on-activity:
|
8
8
|
runs-on: ubuntu-latest
|
9
9
|
steps:
|
10
|
-
- uses: actions/checkout@
|
10
|
+
- uses: actions/checkout@v3
|
11
11
|
- uses: actions-ecosystem/action-remove-labels@v1
|
12
12
|
if: contains(github.event.issue.labels.*.name, 'Waiting for Response')
|
13
13
|
with:
|
@@ -7,11 +7,10 @@ jobs:
|
|
7
7
|
runs-on: ubuntu-latest
|
8
8
|
|
9
9
|
steps:
|
10
|
-
- uses: actions/checkout@
|
11
|
-
- name: Set up Ruby
|
10
|
+
- uses: actions/checkout@v3
|
11
|
+
- name: Set up Ruby
|
12
12
|
uses: ruby/setup-ruby@v1
|
13
13
|
with:
|
14
|
-
ruby-version: 2.7
|
15
14
|
bundler-cache: true
|
16
15
|
- name: Install gems
|
17
16
|
run: |
|
data/.nvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
20.10.0
|
data/.rubocop.yml
CHANGED
@@ -2,7 +2,6 @@ inherit_gem:
|
|
2
2
|
rubocop-shopify: rubocop.yml
|
3
3
|
|
4
4
|
AllCops:
|
5
|
-
TargetRubyVersion: 2.7
|
6
5
|
Exclude:
|
7
6
|
- 'test/tmp/**/*'
|
8
7
|
- 'vendor/bundle/**/*'
|
@@ -16,3 +15,5 @@ Style/ClassAndModuleChildren:
|
|
16
15
|
Exclude:
|
17
16
|
- 'test/**/*'
|
18
17
|
|
18
|
+
Style/ClassMethodsDefinitions:
|
19
|
+
Enabled: false
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.2.2
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,179 @@
|
|
1
1
|
Unreleased
|
2
2
|
----------
|
3
3
|
|
4
|
+
22.5.0 (November 28, 2024)
|
5
|
+
----------
|
6
|
+
- Add support for filters in webhook registration [1923](https://github.com/Shopify/shopify_app/pull/1923)
|
7
|
+
- Make `ShopifyApp.configuration.scope` default to empty list `[]` [1913](https://github.com/Shopify/shopify_app/pull/1913)
|
8
|
+
|
9
|
+
22.4.0 (August 22, 2024)
|
10
|
+
----------
|
11
|
+
- Add the `unified_admin_domain` configuration option for the unified admin domain.
|
12
|
+
- Add new generators for webhook subscriptions defined in the `shopify.app.toml` file [1882](https://github.com/Shopify/shopify_app/pull/1882)
|
13
|
+
- Fix test stubbing for Token Exchange auth [1897](https://github.com/Shopify/shopify_app/pull/1897)
|
14
|
+
|
15
|
+
22.3.1 (July 26, 2024)
|
16
|
+
----------
|
17
|
+
- Handle edge case where we attempted to redirect to login when already at the top level [#1887](https://github.com/Shopify/shopify_app/pull/1887)
|
18
|
+
|
19
|
+
22.3.0 (July 24, 2024)
|
20
|
+
----------
|
21
|
+
- Deprecate `ShopifyApp::JWTMiddleware`. And remove internal usage. Any existing app code relying on decoded JWT contents set from `request.env` should instead include the `WithShopifyIdToken` concern and call its respective methods. [#1861](https://github.com/Shopify/shopify_app/pull/1861) [Migration Guide](/docs/Upgrading.md#v2300---removed-shopifyappjwtmiddleware)
|
22
|
+
- Handle scenario when invalid URI is passed to `sanitize_shop_domain` [#1852](https://github.com/Shopify/shopify_app/pull/1852)
|
23
|
+
- Remove references to old JS files during asset precompile [#1865](https://github.com/Shopify/shopify_app/pull/1865)
|
24
|
+
- Remove old translation keys for `enable_cookies_*`, `top_level_interaction_*` and `request_storage_access_*` [#1865](https://github.com/Shopify/shopify_app/pull/1865)
|
25
|
+
- Add invalid id token handling for `current_shopify_domain` method [#1868](https://github.com/Shopify/shopify_app/pull/1868)
|
26
|
+
- Keep original path and params when redirecting deep links to embed [#1869](https://github.com/Shopify/shopify_app/pull/1869)
|
27
|
+
- Fix managed install path for SPIN environments [#1877](https://github.com/Shopify/shopify_app/pull/1877)
|
28
|
+
- Migrate fullpage redirect to App Bridge CDN [#1870](https://github.com/Shopify/shopify_app/pull/1870)
|
29
|
+
- Improve embedded requests detection with `Sec-Fetch-Dest` header [#1873](https://github.com/Shopify/shopify_app/pull/1873)
|
30
|
+
- Fix bug where locale is not read from session if locale param is not present in app request [#1878](https://github.com/Shopify/shopify_app/pull/1878)
|
31
|
+
|
32
|
+
22.2.1 (May 6,2024)
|
33
|
+
----------
|
34
|
+
* Patch - Don't delete session on 401 errors during retry in `with_token_refetch` [#1844](https://github.com/Shopify/shopify_app/pull/1844)
|
35
|
+
|
36
|
+
22.2.0 (May 2,2024)
|
37
|
+
----------
|
38
|
+
* Add new zero redirect authorization strategy - `Token Exchange`.
|
39
|
+
- This strategy replaces the existing OAuth flow for embedded apps and remove the redirects that were previously necessary to complete OAuth.
|
40
|
+
See ["New embedded app authorization strategy (Token Exchange)"](/README.md/#new-embedded-app-authorization-strategy-token-exchange) for how to enable this feature.
|
41
|
+
- Related PRs: [#1817](https://github.com/Shopify/shopify_app/pull/1817),
|
42
|
+
[#1818](https://github.com/Shopify/shopify_app/pull/1818),
|
43
|
+
[#1819](https://github.com/Shopify/shopify_app/pull/1819),
|
44
|
+
[#1821](https://github.com/Shopify/shopify_app/pull/1821),
|
45
|
+
[#1822](https://github.com/Shopify/shopify_app/pull/1822),
|
46
|
+
[#1823](https://github.com/Shopify/shopify_app/pull/1823),
|
47
|
+
[#1832](https://github.com/Shopify/shopify_app/pull/1832),
|
48
|
+
[#1833](https://github.com/Shopify/shopify_app/pull/1833),
|
49
|
+
[#1834](https://github.com/Shopify/shopify_app/pull/1834),
|
50
|
+
[#1836](https://github.com/Shopify/shopify_app/pull/1836),
|
51
|
+
* Bumps `shopify_api` to `14.3.0` [1832](https://github.com/Shopify/shopify_app/pull/1832)
|
52
|
+
* Support `id_token` from URL param [1832](https://github.com/Shopify/shopify_app/pull/1832)
|
53
|
+
* Extracted controller concern `WithShopifyIdToken`
|
54
|
+
* This concern provides a method `shopify_id_token` to retrieve the Shopify Id token from either the authorization header or the URL param `id_token`.
|
55
|
+
* `ShopifyApp::JWTMiddleware` supports retrieving session token from URL param `id_token`
|
56
|
+
* `ShopifyApp::JWTMiddleware` returns early if the app is not embedded to avoid unnecessary JWT verification
|
57
|
+
* `LoginProtection` now uses `WithShopifyIdToken` concern to retrieve the Shopify Id token, thus accepting the session token from the URL param `id_token`
|
58
|
+
* Marking `ShopifyApp::JWT` to be deprecated in version 23.0.0 [1832](https://github.com/Shopify/shopify_app/pull/1832), use `ShopifyAPI::Auth::JwtPayload` instead.
|
59
|
+
* Fix infinite redirect loop caused by handling errors from Billing API [1833](https://github.com/Shopify/shopify_app/pull/1833)
|
60
|
+
|
61
|
+
22.1.0 (April 9,2024)
|
62
|
+
----------
|
63
|
+
* Extracted class - `PostAuthenticateTasks` to handle post authenticate tasks. To learn more, see [post authenticate tasks](/docs/shopify_app/authentication.md#post-authenticate-tasks). [1819](https://github.com/Shopify/shopify_app/pull/1819)
|
64
|
+
* Bumps shopify_api dependency to 14.1.0 [1826](https://github.com/Shopify/shopify_app/pull/1826)
|
65
|
+
|
66
|
+
22.0.1 (March 12, 2024)
|
67
|
+
----------
|
68
|
+
* Bumps `shopify_api` to `14.0.1` [1813](https://github.com/Shopify/shopify_app/pull/1813)
|
69
|
+
|
70
|
+
22.00.0 (March 5, 2024)
|
71
|
+
----------
|
72
|
+
|
73
|
+
To migrate from a previous version, please see the [v22 migration guide](docs/Upgrading.md#upgrading-to-v2200).
|
74
|
+
|
75
|
+
* ⚠️ [Breaking] Bumps minimum supported Ruby version to 3.0. Bumps `shopify_api` to 14.0 [1801](https://github.com/Shopify/shopify_app/pull/1801)
|
76
|
+
* ⚠️ [Breaking] Removes deprecated controller concerns that were renamed in `v21.10.0`. [1805](https://github.com/Shopify/shopify_app/pull/1805)
|
77
|
+
* ⚠️ [Breaking] Removes deprecated `ScripttagManager`. We realize there was communication error in our logging where we logged future deprecation instead of our inteded removal. Since we have been logging that for 2 years we felt we'd move forward with the removal instead pushing this off until the next major release. [1806](https://github.com/Shopify/shopify_app/pull/1806)
|
78
|
+
* ⚠️ [Breaking] Removes ITP controller concern and `browser_sniffer` dependency.[1810](https://github.com/Shopify/shopify_app/pull/1810)
|
79
|
+
* ⚠️ [Breaking] Removes Marketing Extensions generator [1810](https://github.com/Shopify/shopify_app/pull/1810)
|
80
|
+
* ⚠️ [Breaking] Thows an error if a controller includes incompatible concerns (LoginProtection/EnsureInstalled) [1809](https://github.com/Shopify/shopify_app/pull/1809)
|
81
|
+
* ⚠️ [Breaking] No longer rescues non-shopify API errors during OAuth
|
82
|
+
callback [1807](https://github.com/Shopify/shopify_app/pull/1807)
|
83
|
+
* Make type param for webhooks route optional. This will fix a bug with CLI initiated webhooks.[1786](https://github.com/Shopify/shopify_app/pull/1786)
|
84
|
+
* Fix redirecting to login when we catch a 401 response from Shopify, so that it can also handle cases where the app is already embedded when that happens.[1787](https://github.com/Shopify/shopify_app/pull/1787)
|
85
|
+
* Always register webhooks with offline sessions.[1788](https://github.com/Shopify/shopify_app/pull/1788)
|
86
|
+
|
87
|
+
21.10.0 (January 24, 2024)
|
88
|
+
----------
|
89
|
+
* Fix session deletion for users with customized session storage[#1773](https://github.com/Shopify/shopify_app/pull/1773)
|
90
|
+
* Add configuration flag `check_session_expiry_date` to trigger a re-auth when the (user) session is expired. The session expiry date must be stored and retrieved for this flag to be effective. When the `UserSessionStorageWithScopes` concern is used, a DB migration can be generated with `rails generate shopify_app:user_model --skip` and should be applied before enabling that flag[#1757](https://github.com/Shopify/shopify_app/pull/1757)
|
91
|
+
|
92
|
+
21.9.0 (January 16, 2024)
|
93
|
+
----------
|
94
|
+
* Fix `add_webhook` generator to create the webhook jobs under the correct directory[#1748](https://github.com/Shopify/shopify_app/pull/1748)
|
95
|
+
* Add support for metafield_namespaces in webhook registration [#1745](https://github.com/Shopify/shopify_app/pull/1745)
|
96
|
+
* Bumps `shopify_api` to latest version (13.4.0), adds support for 2024-01 API version [#1776](https://github.com/Shopify/shopify_app/pull/1776)
|
97
|
+
|
98
|
+
21.8.1 (December 6, 2023)
|
99
|
+
----------
|
100
|
+
* Bump `shopify_api` to 13.3.1 [1763](https://github.com/Shopify/shopify-api-ruby/blob/main/CHANGELOG.md#1331)
|
101
|
+
|
102
|
+
21.8.0 (Dec 1, 2023)
|
103
|
+
----------
|
104
|
+
* Bump `shopify_api` to include bugfix with mandatory webhooks + fixes for CI failures that prevented earlier release
|
105
|
+
* Fixes bug with `WebhooksManager#recreate_webhooks!` where we failed to register topics in the registry[#1743](https://github.com/Shopify/shopify_app/pull/1704)
|
106
|
+
* Allow embedded apps to provide a full URL to get redirected to, rather than defaulting to Shopify Admin [#1746](https://github.com/Shopify/shopify_app/pull/1746)
|
107
|
+
|
108
|
+
21.7.0 (Oct 12, 2023)
|
109
|
+
----------
|
110
|
+
* Fixes typo in webhook generator [#1704](https://github.com/Shopify/shopify_app/pull/1704)
|
111
|
+
* Fix registration of event_bridge and pub_sub webhooks [#1635](https://github.com/Shopify/shopify_app/pull/1635)
|
112
|
+
* Adds support for adding any number of trial days within `EnsureBilling` by adding the `trial_days` field to `BillingConfiguration`
|
113
|
+
* Updated AppBridge to 3.7.8 [#1680](https://github.com/Shopify/shopify_app/pull/1680)
|
114
|
+
* Support falling back to 2 letter language code locales [#1711](https://github.com/Shopify/shopify_app/pull/1711)
|
115
|
+
* Fix locale leaks across requests [#1711](https://github.com/Shopify/shopify_app/pull/1711)
|
116
|
+
* Fix bug in `InMemoryUserSessionStore#store`, this can now be used out of box. [#1716](https://github.com/Shopify/shopify_app/pull/1716)
|
117
|
+
* Adds support for 2023-10 API version [#1734](https://github.com/Shopify/shopify_app/pull/1734)
|
118
|
+
|
119
|
+
21.6.0 (July 11, 2023)
|
120
|
+
----------
|
121
|
+
* Adds support for toggling test charges within `EnsureBilling` by adding `test` field to `BillingConfiguration` and pulling in environment variable [#1688](https://github.com/Shopify/shopify_app/pull/1688)
|
122
|
+
* Adds support for 2023-07 API version [#1706](https://github.com/Shopify/shopify_app/pull/1706)
|
123
|
+
|
124
|
+
21.5.0 (May 18, 2023)
|
125
|
+
----------
|
126
|
+
* Support Unified Admin [#1658](https://github.com/Shopify/shopify_app/pull/1658)
|
127
|
+
* Set `access_scopes` column to string by default [#1636](https://github.com/Shopify/shopify_app/pull/1636)
|
128
|
+
* Fixes a bug with `EnsureBilling` causing infinite redirect in embedded apps [#1578](https://github.com/Shopify/shopify_app/pull/1578)
|
129
|
+
* Modifies SessionStorage#with_shopify_session to call a block with a supplied session instance [#1488](https://github.com/Shopify/shopify_app/pull/1488)
|
130
|
+
* Refactors `ShopifyApp::WebhhooksManager#recreate_webhooks!` to have a uniform webhook inventory that doesn't clash with the API library. Updates webhook generator to use supplied session. [#1686](https://github.com/Shopify/shopify_app/pull/1686)
|
131
|
+
* No longer use session repository from API library[#1689](https://github.com/Shopify/shopify_app/pull/1689)
|
132
|
+
|
133
|
+
21.4.1 (Feb 21, 2023)
|
134
|
+
----------
|
135
|
+
* Fixed bug where authentication redirect could still happen even though `reauth_on_access_scope_changes` is set to `false` [#1639](https://github.com/Shopify/shopify_app/pull/1639)
|
136
|
+
|
137
|
+
21.4.0 (Jan 5, 2023)
|
138
|
+
----------
|
139
|
+
* Updated shopify_api to 12.4.0 [#1633](https://github.com/Shopify/shopify_app/pull/1633)
|
140
|
+
* Removed Logged output for rescued JWT exceptions [#1610](https://github.com/Shopify/shopify_app/pull/1610)
|
141
|
+
* Fixes a bug with `ShopifyApp::WebhooksManager.destroy_webhooks` causing not passing session arguments to [unregister](https://github.com/Shopify/shopify-api-ruby/blob/main/lib/shopify_api/webhooks/registry.rb#L99) method [#1569](https://github.com/Shopify/shopify_app/pull/1569)
|
142
|
+
* Validates shop's offline session token is still valid when using `EnsureInstalled`[#1612](https://github.com/Shopify/shopify_app/pull/1612)
|
143
|
+
* Allows use of multiple subdomains with myshopify_domain [#1620](https://github.com/Shopify/shopify_app/pull/1620)
|
144
|
+
* Added a `setup_shopify_session` test helper to stub a valid session
|
145
|
+
|
146
|
+
21.3.1 (Dec 12, 2022)
|
147
|
+
----------
|
148
|
+
* Fix bug with stores using the new unified admin that were falsely being flagged as phishing attempts [#1608](https://github.com/Shopify/shopify_app/pull/1608)
|
149
|
+
|
150
|
+
21.3.0 (Dec 9, 2022)
|
151
|
+
----------
|
152
|
+
* Move covered scopes check into user access strategy [#1600](https://github.com/Shopify/shopify_app/pull/1600)
|
153
|
+
* Add configuration option for user access strategy [#1599](https://github.com/Shopify/shopify_app/pull/1599)
|
154
|
+
* Fixes a bug with `EnsureAuthenticatedLinks` causing deep links to not work [#1549](https://github.com/Shopify/shopify_app/pull/1549)
|
155
|
+
* Ensure online token is properly used when using `current_shopify_session` [#1566](https://github.com/Shopify/shopify_app/pull/1566)
|
156
|
+
* Added debug logs, you can read more about logging [here](./docs/logging.md). [#1545](https://github.com/Shopify/shopify_app/pull/1545)
|
157
|
+
* Emit a deprecation notice for wrongly-rescued exceptions [#1530](https://github.com/Shopify/shopify_app/pull/1530)
|
158
|
+
* Log a deprecation warning for the use of incompatible controller concerns [#1560](https://github.com/Shopify/shopify_app/pull/1560)
|
159
|
+
* Fixes bug with expired sessions for embedded apps returning a 500 instead of 401 [#1580](https://github.com/Shopify/shopify_app/pull/1580)
|
160
|
+
* Generator properly handles uninstall [#1597](https://github.com/Shopify/shopify_app/pull/1597)
|
161
|
+
* Move ownership for session persistence from library to this gem [#1563](https://github.com/Shopify/shopify_app/pull/1563)
|
162
|
+
* Patch phishing vulnerability [#1605](https://github.com/Shopify/shopify_app/pull/1605)
|
163
|
+
* Remove `Itp` from `LoginProtection`. See the [upgrading docs](https://github.com/Shopify/shopify_app/blob/main/docs/Upgrading.md) for more information. [#1604](https://github.com/Shopify/shopify_app/pull/1604)
|
164
|
+
|
165
|
+
21.2.0 (Oct 25, 2022)
|
166
|
+
----------
|
167
|
+
* Pass access scopes on query string [#1540](https://github.com/Shopify/shopify_app/pull/1540)
|
168
|
+
|
169
|
+
21.1.1 (Oct 20, 2022)
|
170
|
+
----------
|
171
|
+
* Updates dependency to `shopify_api` to 12.2 to fix error with host_name argument.
|
172
|
+
|
173
|
+
21.1.0 (Oct 17, 2022)
|
174
|
+
----------
|
175
|
+
* Removes assumed `https` required to run locally. Support both `http` and `https` in backward compatible way. [#1518](https://github.com/Shopify/shopify_app/pull/1518)
|
176
|
+
|
4
177
|
21.0.0 (Oct 3, 2022)
|
5
178
|
----------
|
6
179
|
* Updating shopify_api gem to 12.0.0
|
@@ -17,14 +190,12 @@ Unreleased
|
|
17
190
|
|
18
191
|
20.1.1 (September 2, 2022)
|
19
192
|
----------
|
20
|
-
|
21
193
|
* Fixed an issue where the `embedded_redirect_url` could lead to a redirect loop in server-side rendered (or production) apps. [#1497](https://github.com/Shopify/shopify_app/pull/1497)
|
22
194
|
* Fixes bug where webhooks were generated with addresses instead of the [path the Ruby API](https://github.com/Shopify/shopify-api-ruby/blob/7a08ae9d96a7a85abd0113dae4eb76398cba8c64/lib/shopify_api/webhooks/registrations/http.rb#L12) is expecting [#1474](https://github.com/Shopify/shopify_app/pull/1474). The breaking change that was accidentially already shipped was that `address` attribute for webhooks should be paths not addresses with `https://` and the host name. While the `address` attribute name will still work assuming the value is a path, this name is deprecated. Please configure webhooks with the `path` attribute name instead.
|
23
195
|
* Deduce webhook path from deprecated webhook address if initializer uses address attribute. This makes this attribute change a non-breaking change for those upgrading.
|
24
196
|
|
25
197
|
20.1.0 (August 22, 2022)
|
26
198
|
----------
|
27
|
-
|
28
199
|
* Set the appropriate CSP `frame-ancestor` directive in controllers using the `EmbeddedApp` concern. [#1474](https://github.com/Shopify/shopify_app/pull/1474)
|
29
200
|
* Allow [Cloudflare Tunnel](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/run-tunnel/trycloudflare/) hosts in `config/environments/development.rb`.
|
30
201
|
* Use [Cloudflare Tunnel](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/run-tunnel/trycloudflare/) as example tunnel in readme/docs.
|
@@ -32,30 +203,25 @@ Unreleased
|
|
32
203
|
|
33
204
|
20.0.2 (July 7, 2022)
|
34
205
|
----------
|
35
|
-
|
36
206
|
* Bump [Shopify API](https://github.com/Shopify/shopify-api-ruby) to version 11.0.1. It includes [these updates](https://github.com/Shopify/shopify-api-ruby/blob/main/CHANGELOG.md#version-1101). Fix an issue where HMAC signature verification would fail in OAuth flows during API key rotation.
|
37
207
|
|
38
208
|
20.0.1 (July 6, 2022)
|
39
209
|
----------
|
40
|
-
|
41
210
|
* Accept extra keyword arguments to WebhooksManagerJob to ease upgrade path from v18 or older (https://github.com/Shopify/shopify_app/pull/1466)
|
42
211
|
|
43
212
|
20.0.0 (July 4, 2022)
|
44
213
|
----------
|
45
|
-
|
46
214
|
* Bump [Shopify API](https://github.com/Shopify/shopify-api-ruby) to version 11.0.0. It includes [these updates](https://github.com/Shopify/shopify-api-ruby/blob/main/CHANGELOG.md#version-1100). The breaking change relates to the removal of API version `2021-07` support.
|
47
215
|
* Internal update, adding App Bridge 3 for redirect (only). [#1458](https://github.com/Shopify/shopify_app/pull/1458)
|
48
216
|
|
49
217
|
19.1.0 (June 20, 2022)
|
50
218
|
----------
|
51
|
-
|
52
219
|
* Add the `login_callback_url` config to allow overwriting that route as well, and mount the engine routes based on the configurations. [#1445](https://github.com/Shopify/shopify_app/pull/1445)
|
53
220
|
* Add special headers when returning 401s from LoginProtection. [#1450](https://github.com/Shopify/shopify_app/pull/1450)
|
54
221
|
* Add a new `billing` configuration which takes in a `ShopifyApp::BillingConfiguration` object and checks for payment on controllers with `Authenticated`. [#1455](https://github.com/Shopify/shopify_app/pull/1455)
|
55
222
|
|
56
223
|
19.0.2 (April 27, 2022)
|
57
224
|
----------
|
58
|
-
|
59
225
|
* Fix regression in apps using online tokens. [#1413](https://github.com/Shopify/shopify_app/pull/1413)
|
60
226
|
* Bump [Shopify API](https://github.com/Shopify/shopify-api-ruby) to version 10.0.3. It includes [these fixes](https://github.com/Shopify/shopify-api-ruby/blob/main/CHANGELOG.md#version-1003).
|
61
227
|
|
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
# Contributor Code of Conduct
|
2
|
+
|
3
|
+
As contributors and maintainers of this project, and in the interest of
|
4
|
+
fostering an open and welcoming community, we pledge to respect all
|
5
|
+
people who contribute through reporting issues, posting feature
|
6
|
+
requests, updating documentation, submitting pull requests or patches,
|
7
|
+
and other activities.
|
8
|
+
|
9
|
+
We are committed to making participation in this project a
|
10
|
+
harassment-free experience for everyone, regardless of level of
|
11
|
+
experience, gender, gender identity and expression, sexual orientation,
|
12
|
+
disability, personal appearance, body size, race, ethnicity, age,
|
13
|
+
religion, or nationality.
|
14
|
+
|
15
|
+
Examples of unacceptable behavior by participants include:
|
16
|
+
|
17
|
+
- The use of sexualized language or imagery
|
18
|
+
- Personal attacks
|
19
|
+
- Trolling or insulting/derogatory comments
|
20
|
+
- Public or private harassment
|
21
|
+
- Publishing other's private information, such as physical or electronic
|
22
|
+
addresses, without explicit permission
|
23
|
+
- Other unethical or unprofessional conduct
|
24
|
+
|
25
|
+
Project maintainers have the right and responsibility to remove, edit,
|
26
|
+
or reject comments, commits, code, wiki edits, issues, and other
|
27
|
+
contributions that are not aligned to this Code of Conduct, or to ban
|
28
|
+
temporarily or permanently any contributor for other behaviors that they
|
29
|
+
deem inappropriate, threatening, offensive, or harmful.
|
30
|
+
|
31
|
+
By adopting this Code of Conduct, project maintainers commit themselves
|
32
|
+
to fairly and consistently applying these principles to every aspect of
|
33
|
+
managing this project. Project maintainers who do not follow or enforce
|
34
|
+
the Code of Conduct may be permanently removed from the project team.
|
35
|
+
|
36
|
+
This Code of Conduct applies both within project spaces and in public
|
37
|
+
spaces when an individual is representing the project or its community.
|
38
|
+
|
39
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may
|
40
|
+
be reported by contacting a project maintainer at <opensource@shopify.com>.
|
41
|
+
All complaints will be reviewed and investigated and will result in a response
|
42
|
+
that is deemed necessary and appropriate to the circumstances. Maintainers are
|
43
|
+
obligated to maintain confidentiality with regard to the reporter of an incident.
|
44
|
+
|
45
|
+
This Code of Conduct is adapted from the Contributor Covenant, version
|
46
|
+
1.3.0, available from http://contributor-covenant.org/version/1/3/0/
|
data/CONTRIBUTING.md
CHANGED
@@ -23,7 +23,7 @@ Shopify has an official message board with dedicated forums to discuss all thing
|
|
23
23
|
* [Shopify Apps](https://community.shopify.com/c/Shopify-Apps/bd-p/shopify-apps)
|
24
24
|
* [Shopify APIs & SDKs](https://community.shopify.com/c/Shopify-APIs-SDKs/bd-p/shopify-apis-and-technology)
|
25
25
|
|
26
|
-
If you prefer to chat instead, join the [Shopify Partners Slack Community group](https://
|
26
|
+
If you prefer to chat instead, join the [Shopify Partners Slack Community group](https://community.shopify.com/c/partners-and-developers/ct-p/appdev). This Slack group hosts an active community of thousands of app developers.
|
27
27
|
|
28
28
|
By participating in the Community forum or Slack group, you agree to adhere to the forum [Code of Conduct](https://community.shopify.com/c/Announcements/Code-of-Conduct/m-p/491969#M23) outlined.
|
29
29
|
|
@@ -61,7 +61,7 @@ If you have a suggestion for the Shopify App gem or a feature request, provide t
|
|
61
61
|
|
62
62
|
The process described here has several goals:
|
63
63
|
|
64
|
-
* Maintain the Shopify App gem's quality
|
64
|
+
* Maintain the Shopify App gem's quality (does the change you're making have a test?)
|
65
65
|
* Fix problems that are important to app developers
|
66
66
|
* Enable a sustainable system for the Shopify App gem's maintainers to review contributions
|
67
67
|
|
@@ -74,8 +74,18 @@ Please follow these steps to have your contribution considered by the maintainer
|
|
74
74
|
|
75
75
|
While the prerequisites above must be satisfied prior to having your pull request reviewed, the reviewer(s) may ask you to complete additional design work, tests, or other changes before your pull request can be ultimately accepted.
|
76
76
|
</details>
|
77
|
-
|
78
|
-
### App Bridge client
|
79
77
|
|
80
|
-
|
81
|
-
|
78
|
+
### Running tests
|
79
|
+
|
80
|
+
#### Test Environment Requirements
|
81
|
+
|
82
|
+
To run tests, you'll need to make sure that your development environment is setup correctly. You'll need:
|
83
|
+
|
84
|
+
* Ruby 3+ is installed on your system
|
85
|
+
* Install dependencies with `bundle install`
|
86
|
+
|
87
|
+
#### Executing Tests
|
88
|
+
|
89
|
+
* To run all tests: `bundle exec rake test`
|
90
|
+
* To run a specific test file: `bundle exec rake test TEST=test/controllers/callback_controller_test.rb`
|
91
|
+
* To run a single test: `bundle exec rake test TEST=test/controllers/callback_controller_test.rb:50` where `50` is the line number on or inside the test case.
|