kiosk-all 0.6.1 → 0.6.28
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 +4 -4
- data/CHANGELOG.md +108 -0
- data/README.md +37 -16
- data/lib/kiosk/all/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fc9f77abd1d31d88f0105e15bd39363b0d3d5e43d7198b1de59b41a2715aa2c0
|
|
4
|
+
data.tar.gz: bfce00226e39ade5f9ac011e50ec126e8a99af4832e7123357bdaed529cb4a30
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d8411cdd458539c0208ce9dc0d9f8e5c39eed10f2c8e339a88badfa4e778757308343728fff21f4ddf4fa8b5aa2e452eaaa59c132eb28efd396ab31ab4c5f446
|
|
7
|
+
data.tar.gz: 4b7ddc45faf6aa8292acc647ad573a75775e4e0b8d44eb71d82f0666b9743f81863df6182d354a92e9f44814ef1582e759bc409670b675caaa7e48fc9e7d5db0
|
data/CHANGELOG.md
CHANGED
|
@@ -12,6 +12,114 @@ already written is edited.
|
|
|
12
12
|
|
|
13
13
|
## [Unreleased]
|
|
14
14
|
|
|
15
|
+
## [0.6.28] — 2026-10-26
|
|
16
|
+
|
|
17
|
+
- 2026-10-26: Version 0.6.28, the tree cut that matches skill 0.6.28.
|
|
18
|
+
|
|
19
|
+
## [0.6.27] — 2026-10-26
|
|
20
|
+
|
|
21
|
+
- 2026-10-26: Version 0.6.27, the tree cut that matches skill 0.6.27.
|
|
22
|
+
## [0.6.26] — 2026-10-26
|
|
23
|
+
|
|
24
|
+
- 2026-10-26: Version 0.6.26, the tree cut that matches skill 0.6.26.
|
|
25
|
+
## [0.6.25] — 2026-10-26
|
|
26
|
+
|
|
27
|
+
- 2026-10-26: Version 0.6.25, the tree cut that matches skill 0.6.25.
|
|
28
|
+
- 2026-10-26: The README names the gems the proof-of-work toll needs, and the generator that creates the functions RLS policies call.
|
|
29
|
+
|
|
30
|
+
## [0.6.24] — 2026-10-26
|
|
31
|
+
|
|
32
|
+
- 2026-10-26: Version 0.6.24, the tree cut that matches skill 0.6.24.
|
|
33
|
+
|
|
34
|
+
## [0.6.23] — 2026-10-26
|
|
35
|
+
|
|
36
|
+
- 2026-10-26: Version 0.6.23, the tree cut that matches skill 0.6.23.
|
|
37
|
+
|
|
38
|
+
## [0.6.22] — 2026-10-26
|
|
39
|
+
|
|
40
|
+
- 2026-10-26: Version 0.6.22, the tree cut that matches skill 0.6.22.
|
|
41
|
+
|
|
42
|
+
## [0.6.21] — 2026-10-26
|
|
43
|
+
|
|
44
|
+
- 2026-10-26: Version 0.6.21, the tree cut that matches skill 0.6.21.
|
|
45
|
+
|
|
46
|
+
## [0.6.20] — 2026-10-26
|
|
47
|
+
|
|
48
|
+
- 2026-10-26: Version 0.6.20, the tree cut that matches skill 0.6.20.
|
|
49
|
+
|
|
50
|
+
## [0.6.19] — 2026-10-26
|
|
51
|
+
|
|
52
|
+
- 2026-10-26: Version 0.6.19, the tree cut that matches skill 0.6.19.
|
|
53
|
+
|
|
54
|
+
## [0.6.18] — 2026-10-25
|
|
55
|
+
|
|
56
|
+
- 2026-10-25: Version 0.6.18, the tree cut that matches skill 0.6.18.
|
|
57
|
+
|
|
58
|
+
## [0.6.17] — 2026-10-25
|
|
59
|
+
|
|
60
|
+
- 2026-10-25: Version 0.6.17, the tree cut that matches skill 0.6.17.
|
|
61
|
+
|
|
62
|
+
## [0.6.16] — 2026-10-25
|
|
63
|
+
|
|
64
|
+
- 2026-10-25: Version 0.6.16, the tree cut that matches skill 0.6.16.
|
|
65
|
+
|
|
66
|
+
## [0.6.15] — 2026-10-25
|
|
67
|
+
|
|
68
|
+
- 2026-10-25: Version 0.6.15, the tree cut that matches skill 0.6.15.
|
|
69
|
+
|
|
70
|
+
## [0.6.14] — 2026-10-25
|
|
71
|
+
|
|
72
|
+
- 2026-10-25: Version 0.6.14, the tree cut that matches skill 0.6.14.
|
|
73
|
+
|
|
74
|
+
## [0.6.13] — 2026-10-25
|
|
75
|
+
|
|
76
|
+
- 2026-10-25: Version 0.6.13, the tree cut that matches skill 0.6.13.
|
|
77
|
+
|
|
78
|
+
## [0.6.12] — 2026-10-24
|
|
79
|
+
|
|
80
|
+
- 2026-10-24: Version 0.6.12, the tree cut that matches skill 0.6.12.
|
|
81
|
+
|
|
82
|
+
## [0.6.11] — 2026-10-24
|
|
83
|
+
|
|
84
|
+
- 2026-10-24: Version 0.6.11, the tree cut that matches skill 0.6.11.
|
|
85
|
+
|
|
86
|
+
## [0.6.10] — 2026-10-23
|
|
87
|
+
|
|
88
|
+
- 2026-10-23: Version 0.6.10, the tree cut that matches skill 0.6.10.
|
|
89
|
+
|
|
90
|
+
## [0.6.9] — 2026-10-23
|
|
91
|
+
|
|
92
|
+
- 2026-10-23: Version 0.6.9, the tree cut that matches skill 0.6.9.
|
|
93
|
+
|
|
94
|
+
## [0.6.8] — 2026-10-22
|
|
95
|
+
|
|
96
|
+
- 2026-10-22: Version 0.6.8, the tree cut that matches skill 0.6.8.
|
|
97
|
+
|
|
98
|
+
## [0.6.7] — 2026-10-22
|
|
99
|
+
|
|
100
|
+
- 2026-10-22: Version 0.6.7, the tree cut that matches skill 0.6.7.
|
|
101
|
+
|
|
102
|
+
## [0.6.6] — 2026-10-22
|
|
103
|
+
|
|
104
|
+
- 2026-10-22: Version 0.6.6, the tree cut that matches skill 0.6.6.
|
|
105
|
+
|
|
106
|
+
## [0.6.5] — 2026-10-22
|
|
107
|
+
|
|
108
|
+
- 2026-10-22: Version 0.6.5, the tree cut that matches skill 0.6.5.
|
|
109
|
+
|
|
110
|
+
## [0.6.4] — 2026-10-22
|
|
111
|
+
|
|
112
|
+
- 2026-10-22: Version 0.6.4, the tree cut that matches skill 0.6.4.
|
|
113
|
+
- 2026-10-22: The gem description names the OAuth registration and token endpoints.
|
|
114
|
+
|
|
115
|
+
## [0.6.3] — 2026-10-22
|
|
116
|
+
|
|
117
|
+
- 2026-10-22: Version 0.6.3, the tree cut that matches skill 0.6.3.
|
|
118
|
+
|
|
119
|
+
## [0.6.2] — 2026-10-22
|
|
120
|
+
|
|
121
|
+
- 2026-10-22: Version 0.6.2, the tree cut that matches skill 0.6.2.
|
|
122
|
+
|
|
15
123
|
## [0.6.1] — 2026-10-22
|
|
16
124
|
|
|
17
125
|
- 2026-10-22: Version 0.6.1, the tree cut that matches skill 0.6.1.
|
data/README.md
CHANGED
|
@@ -6,33 +6,54 @@ The «I just want to start» meta-gem for the [Kiosk](https://kiosk.tech) framew
|
|
|
6
6
|
|
|
7
7
|
`kiosk-all` declares runtime dependencies on the two production data-plane gems:
|
|
8
8
|
|
|
9
|
-
- **`kiosk-core`** — value types (`Identity`, `Mandate`), abstract adapter base classes, GUC namespace constants, `Kiosk.configure`, protocol version surface
|
|
10
|
-
- **`kiosk-server`** — the whole host-side surface: the
|
|
9
|
+
- **`kiosk-core`** — value types (`Identity`, `Mandate::CheckoutMandate`, `Mandate::PaymentMandate`), abstract adapter base classes, GUC namespace constants, `Kiosk.configure`, protocol version surface
|
|
10
|
+
- **`kiosk-server`** — the whole host-side surface: the Kiosk controllers (one path per operation — `GET /kiosk/<query-name>`, `POST /kiosk/<action-name>` — plus `/kiosk/{schema,openapi.json,pay}`), OAuth client registration and the token request with a client assertion and a DPoP proof, JWKS, KYC attestation, `agents.txt` / `agents.json` / `/.well-known/kiosk.json` discovery, the account-binding ceremony, `Kiosk::Server::Executor`, the proof-of-work toll, the Rails engine, the headers middleware and the `kiosk:install` generator
|
|
11
11
|
|
|
12
12
|
Requiring `kiosk-all` loads `Kiosk` and `Kiosk::Server`.
|
|
13
13
|
|
|
14
14
|
## Install
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
```ruby
|
|
17
|
+
gem "kiosk-all"
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
That's it for the data plane. Optional pieces you add for your stack:
|
|
21
|
+
|
|
22
|
+
### Proof-of-work toll — opt-in
|
|
23
|
+
|
|
24
|
+
The toll needs two gems that `kiosk-all` does not pull in: `kiosk-reputation`
|
|
25
|
+
(the policy that sets the toll, and the challenges) and `kiosk-pow-equihash`
|
|
26
|
+
(the proof-of-work backend). Add both, and `require` them:
|
|
17
27
|
|
|
18
28
|
```ruby
|
|
19
|
-
gem "kiosk-
|
|
29
|
+
gem "kiosk-reputation"
|
|
30
|
+
gem "kiosk-pow-equihash"
|
|
20
31
|
```
|
|
21
32
|
|
|
22
|
-
|
|
33
|
+
`c.reputation_policy` sets the call toll and `c.registration_pow_count` the
|
|
34
|
+
registration toll; both need `c.pow_secret`. The kiosk-server README tells how
|
|
35
|
+
to configure them.
|
|
23
36
|
|
|
24
37
|
### RLS defense-in-depth — opt-in
|
|
25
38
|
|
|
26
|
-
`kiosk-all` does **not** pull in `kiosk-rls`. Kiosk's isolation comes from the
|
|
39
|
+
`kiosk-all` does **not** pull in `kiosk-rls`. Kiosk's isolation comes from the declared queries, actions and `pay`, each authorized in the application; Postgres RLS is available as belt-and-suspenders hardening. Opt in explicitly:
|
|
27
40
|
|
|
28
41
|
```ruby
|
|
29
|
-
gem "kiosk-rls"
|
|
42
|
+
gem "kiosk-rls" # opt-in: DB-level RLS defense-in-depth
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
The gem puts `enable_rls_on` and its siblings on `ActiveRecord::Migration`
|
|
46
|
+
itself. A policy reads the request's customer through `kiosk_current_*()` SQL
|
|
47
|
+
functions, and the install generator writes the migration that creates them:
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
bin/rails generate kiosk:rls:install --user-id-type=uuid
|
|
51
|
+
bin/rails db:migrate
|
|
30
52
|
```
|
|
31
53
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
the part you do configure.
|
|
54
|
+
Give it the `--user-id-type` that you gave `kiosk:install`. See the kiosk-rls
|
|
55
|
+
README for the policy language and for the role settings (`app_role`,
|
|
56
|
+
`enforce_db_role`), which you configure.
|
|
36
57
|
|
|
37
58
|
### Test harness — pick one
|
|
38
59
|
|
|
@@ -40,8 +61,8 @@ the part you do configure.
|
|
|
40
61
|
|
|
41
62
|
```ruby
|
|
42
63
|
group :test do
|
|
43
|
-
gem "kiosk-rls-rspec"
|
|
44
|
-
# gem "kiosk-rls-minitest"
|
|
64
|
+
gem "kiosk-rls-rspec" # if you use RSpec
|
|
65
|
+
# gem "kiosk-rls-minitest" # if you use Minitest
|
|
45
66
|
end
|
|
46
67
|
```
|
|
47
68
|
|
|
@@ -52,13 +73,13 @@ Why not bundled: test-support gems pull in `rspec`/`minitest` and host-test infr
|
|
|
52
73
|
`kiosk-all` does **not** pull in any adapter gem. Add the ones you actually use:
|
|
53
74
|
|
|
54
75
|
```ruby
|
|
55
|
-
gem "kiosk-user-idp-devise"
|
|
56
|
-
gem "kiosk-pay-stripe"
|
|
76
|
+
gem "kiosk-user-idp-devise" # the one shipped sign-in adapter
|
|
77
|
+
gem "kiosk-pay-stripe" # only shipped PSP adapter today
|
|
57
78
|
```
|
|
58
79
|
|
|
59
80
|
Those two are the whole set: `git ls-files 'kiosk-user-idp-*/*.gemspec' 'kiosk-pay-*/*.gemspec'` names one gem each. For a stack or a market neither covers, subclass `Kiosk::UserIdentityProviders::Base` or `Kiosk::PaymentProviders::Base` in your own app and assign it in the initializer.
|
|
60
81
|
|
|
61
|
-
Why not bundled:
|
|
82
|
+
Why not bundled: each operator picks a payment provider for its market (`kiosk-pay-*`) and an identity adapter for the sign-in it already has (`kiosk-user-idp-*`). A bundle of every adapter would put unused gems into every Gemfile.
|
|
62
83
|
|
|
63
84
|
## Status
|
|
64
85
|
|
data/lib/kiosk/all/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kiosk-all
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.6.
|
|
4
|
+
version: 0.6.28
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Phil Pirozhkov
|
|
@@ -41,12 +41,12 @@ description: |
|
|
|
41
41
|
kiosk-all is the «I just want to start» entry point for the Kiosk
|
|
42
42
|
framework. Installing it pulls in the production data-plane gems:
|
|
43
43
|
kiosk-core (value types, abstract bases, configuration) and
|
|
44
|
-
kiosk-server — the whole host-side surface: the
|
|
44
|
+
kiosk-server — the whole host-side surface: the Kiosk controllers
|
|
45
45
|
(one endpoint per verb — GET /kiosk/<query-name>, POST
|
|
46
46
|
/kiosk/<action-name> — plus /kiosk/{schema,openapi.json,pay}), the
|
|
47
|
-
|
|
47
|
+
OAuth registration and token endpoints, JWKS,
|
|
48
48
|
KYC attestation, discovery, the account-binding ceremony, the
|
|
49
|
-
Executor, the
|
|
49
|
+
Executor, the proof-of-work toll, the headers middleware and the `kiosk:install`
|
|
50
50
|
generator.
|
|
51
51
|
|
|
52
52
|
Deliberately out of scope:
|