All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Fixed an issue where headers set by a React application would not have it's headers propogated to the client.
- Update test suite to use Ruby 3.1 and Rails 7. No code logic changes were required so we currently sill support older versions of both on a best-effort basis. (#2235)
- Make performance report always success and process in background. (#3226)
- Always
require "statsd-instrument"
so that apps don't need to do so. (#2064)
- Fully escape JSON in HTTP header when
data
passed toreact_render
contains Unicode characters. (#2079)
- Bumped actionpack from 6.1.3.2 to 6.1.4.1 (#2015)
-
Added
config.allow_integration_test
(defaultfalse
) option to disable raising error in railstest
environment. -
Prioritize using
allowlist
overwhitelist
from ShopifySecurityBase (#1923)
- Clarify quilt_rails error (#1752)
-
Make server recompilation is now synchronous for more hot-reload-friendly behaviour. (#1688)
-
The
react_render_error
now refreshes on current page. (#1664) -
Deprecate
Quilt::Logger.log
in favour ofQuilt.logger
. (#1611)
- Passed
X-Request-ID
header to the Node server by default. (#1608)
- Added
config.mount
(defaulttrue
) option to disable automatic engine mounting. (#1605)
-
Added automatic route mounting for
Quilt::Engine
that is easily overridable within the main application. (#1576) -
Added a custom error page for
Quilt::ReactRenderable::ReactServerNoResponseError
that automatically refreshes until the react server has started. (#1566)
- Added a
--skip-yarn
option when running thebin/rails generate sewing_kit:install
generator. This option is mostly using for tools to control when yarn dependencies get installed in the case where you implemented a caching mechanism. (#1552)
- Fix typo in error message. (#1528)
-
Remove automatic passing of
X-CSRF-Token
in the header. With csrf header strategy you should not need this value for GraphQL request. If absolutely needed, use custom headers method to pass the value manually. (#1509) -
Remove installation of
@shopify/react-server
from the generator. (#1509)
- Added setting of the javascript path in generator (#1509)
data
header now only contains "data", and omits any custom headers passed intorender_react
. Consumers of this gem are encouraged to use the newNetworkUniversalProvider
in@shopify/react-network
to access headers on client-side renders
- Move SewingKit generator task into sewing-kit. The generator command remains the same. (#1494)
- Remove generator task
quilt_rails:install
. The generator command remains the same. (#1494)
- Refactor generators into smaller tasks. (#1449)
- Lock the version of
react
,react-dom
andtypescript
(#1449)
- Added the generation of a few more configuration files
.editorconfig
,.eslintignore
,.prettierignore
(#1449) - Added a default
package.json
file (#1449) - Added the ability to grab application name from Rails setting for
package.json
&sewing-kit.config
(#1449)
- Fixed: Performance endpoint now parses
text/plain
report data as JSON
- Fixed: Performance endpoint now accepts data that lacks a
connection
parameter, replacing it with a stand-in value
- Add: Expose a
data
argument onrender_react
to share data to the React server using theX-Quilt-Data
header (#1411)
@shopify/react-server
v0.12.0 and @shopify/react-server-webpack-plugin
v3.0.0 (or @shopify/sewing-kit
v0.128.0)
- add
allowed_push_host
in gemspec that is required to publish
- Custom CSRF strategy to allow requests containing an
x-shopify-react-xhr: 1
header, deprecating the old custom CSRF strategy which was intended for use only in server rendering in favour of one for use both on the server and client. #1331
- The
Quilt::ReactRenderable
methodrender_react
now accepts a header argument that gets passed through the reverse proxy
- Bumped
statsd-instruments
gem to version2.8
#1152
- The
Quilt::Performance::Reportable
module no longer breaks when including tags in distributions in production.
- The new
Quilt::Performance
module provides tools for parsing performance reports sent by@shopify/react-performance
and sending distributions to StatsD servers.
- Quilt generator now adds
typescript
,react
,react-dom
, and types as project dependencies #1038 - Quilt generator now adds a
tsconfig.json
#1038 - Quilt generator now avoids warnings about
--isolated-modules
by using ES export syntax #1038 - Quilt generated apps no longer start up with exceptions about
app/ui/App.tsx
being uncompilable #1038
- The Node server calling Rails controllers no longer blocks first page load #1020
- The Node server calling Rails controllers no longer blocks page loads after changing an
.rb
file #1020
- Custom CSRF strategy to allow server-side requests containing an
X-Shopify-Server-Side-Rendered: 1
header #1004
- Now fails fast with an improved error message suggesting proper testing practices when used in a test, rather than giving a confusing error aimed at development flows #944
- No longer breaks when used with
ShopifySecurityBase
#896
- Always include csrf token for quilt rails requests #887
- Raise a more meaningful error message when React server is ready/configured properly #870
- Fix rails index route typo
- Converted
quilt_rails
to an Engine (840) - Added generators for
quilt:install
andsewing-kit:install
easier installation (840)
- Configuration for the address of the react server now defaults to
ENV['REACT_SERVER_IP']
:ENV['REACT_SERVER_PORT']
if they are set.
- Added logging for the outgoing request and response status #853
- Created
quilt_rails
package