studio-engine 0.135.0 → 0.135.1
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.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1773500bab65e455763f147763e2401b45b720bc04db947380847a7a85cb4e09
|
|
4
|
+
data.tar.gz: 3db38f0935be3b1665094094eab2c976d2cea82b66700a4a8def3bf32f73cc32
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1400812c414d1ed15811d36aecaa3adc99cba9cba708d50b294ab35f0c73dfd5ca96961c8b51706f58e0c4d941fef904fa770be4bf27dacf6a9bb3f0e25eaeff
|
|
7
|
+
data.tar.gz: f36515d1e4dfe60484eadecc84f3b0df0b4d0da8158d12ca0b310f6cba1debe505c276df484a4b3d2936229d463297c8414569da9f3ad0dd5c83f696375c4eb0
|
data/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,12 @@ The format is [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). This pro
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
## 0.135.1 — 2026-11-07
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **The not-found page runs no session tracking and no geo detection.** `Studio::NotFoundController` runs as the exceptions app, outside the session and cookie middleware, so a session-throttled callback never holds there. It added a `Studio::UserSession` row on every signed-in 404, and an app with `Studio::GeoDetection` paid an IP geo lookup (up to 3s) on every 404. The controller now overrides `track_user_session` and `detect_geo_state` as no-ops. The callbacks stay registered, so an app that already skips them in its own initializer (Turf does) still boots; it can drop those lines after it bumps the engine. See `docs/NOT_FOUND_PAGE.md`, *What it skips*.
|
|
12
|
+
|
|
7
13
|
## 0.135.0 — 2026-11-07
|
|
8
14
|
|
|
9
15
|
### Fixed
|
|
@@ -24,6 +24,9 @@ module Studio
|
|
|
24
24
|
#
|
|
25
25
|
# skip_before_action :detect_geo_state
|
|
26
26
|
#
|
|
27
|
+
# The engine's not-found page (Studio::NotFoundController) needs no skip: it
|
|
28
|
+
# overrides the method as a no-op, so an app's own skip there still works.
|
|
29
|
+
#
|
|
27
30
|
# SESSION KEYS are the plain names an app already has in production
|
|
28
31
|
# (:geo_state, :geo_country, :geo_ip, :geo_detected_at, :geo_override) so an
|
|
29
32
|
# app adopting this concern keeps every live visitor's resolved location
|
|
@@ -13,6 +13,16 @@ module Studio
|
|
|
13
13
|
# public/404.html, so a wall can cost the page its layout but never its status.
|
|
14
14
|
class NotFoundController < ::ApplicationController
|
|
15
15
|
skip_before_action :require_authentication, raise: false
|
|
16
|
+
# The page runs as the exceptions app, after the request has left the
|
|
17
|
+
# session and cookie middleware: nothing it writes to the session or a
|
|
18
|
+
# cookie is ever saved. A callback that throttles through the session never
|
|
19
|
+
# holds here, so it would pay its full cost on every 404. Two engine
|
|
20
|
+
# callbacks do that, and both are no-ops below (docs/NOT_FOUND_PAGE.md).
|
|
21
|
+
#
|
|
22
|
+
# Overridden, not skipped: the callbacks stay registered, so an app that
|
|
23
|
+
# already skips them itself with a raising skip_*_action (Turf did) still
|
|
24
|
+
# boots. A skip here would make that app's skip raise ArgumentError.
|
|
25
|
+
|
|
16
26
|
# No forgery skip: Rails' ShowExceptions calls the exceptions app as a GET
|
|
17
27
|
# (request_method = "GET"), which never needs the token, so the host's CSRF
|
|
18
28
|
# allow-lists stay as they are.
|
|
@@ -29,6 +39,15 @@ module Studio
|
|
|
29
39
|
|
|
30
40
|
private
|
|
31
41
|
|
|
42
|
+
# Studio::ErrorHandling's after_action. It would add a Studio::UserSession
|
|
43
|
+
# row on every signed-in 404, because the throttle cookie is never saved.
|
|
44
|
+
def track_user_session; end
|
|
45
|
+
|
|
46
|
+
# Studio::GeoDetection's before_action, when the app includes it. It would
|
|
47
|
+
# pay an IP geo lookup (up to 3s) on every 404, because the session stamp is
|
|
48
|
+
# never saved. Harmless in an app without the concern: nothing calls it.
|
|
49
|
+
def detect_geo_state; end
|
|
50
|
+
|
|
32
51
|
def not_found_logo
|
|
33
52
|
Studio.navbar_brand&.dig(:logo) || Studio.logo_for("Navbar Logo")
|
|
34
53
|
end
|
data/lib/studio/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: studio-engine
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.135.
|
|
4
|
+
version: 0.135.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alex McRitchie
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-11-
|
|
11
|
+
date: 2026-11-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|