captive-cli 1.5.0 → 1.6.0

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: 415acf4d1e664b24fe084bd17b74fbbb5922f64465e37a360464b138dcc58bab
4
- data.tar.gz: 48ea97307c38ab7db3f28ce3da3950f876aacc8fb528effd46758cf4b35131a6
3
+ metadata.gz: a31d2e7433e7b31ac59e131ba6a4ffd55732c3e71641fd5e22a45340e8f3f814
4
+ data.tar.gz: 72b86e63fd6a755f22fab06fd60f1eff32fab9dd8f2c1dfff7a485b11e1a0cd2
5
5
  SHA512:
6
- metadata.gz: 2cf47f38a58c871f6b8aae1e92b168ee95068ee333b9f93f1bfdba0161eb5c05615f2031e97de47091459c21ebbc9a5b1e061752b9d4d373d6e66fd0a1495dde
7
- data.tar.gz: 897af0a7bd2e7685c143a3b2b69b2c4a4dcea02cae52fce02b1ff6c7677be1da310d8f2db9022d6840b7cb4d3f670ae2c441053f7bec717c6a1f609008b06d88
6
+ metadata.gz: a4b15fc087ba7cc009d657b7ce9d0f5738b141d423797d25ab435c43e2aa77442b408db411772dbf1cc3a7b7244c087c56668d6d89c0ccd418fd18a2ce41d6e5
7
+ data.tar.gz: 688bfa7d022d5a4e7605624741153fbb84c0aa9ba90c677035acb87b6935d1febec027421ec3762360ce6fda3ea9c840a9d52f48b816da57a8feffb02caa3da4
@@ -48,6 +48,18 @@ module Captive
48
48
  end
49
49
  end
50
50
 
51
+ desc "auth APP", "Affiche les réglages d'authentification de l'add-on Supabase"
52
+ long_desc <<~DESC
53
+ Auto-confirmation des emails et inscriptions ouvertes, en lecture seule : seule
54
+ l'équipe plateforme les modifie.
55
+
56
+ \x05Exemple :
57
+ \x05 captive addons auth my-app-staging
58
+ DESC
59
+ def auth(app)
60
+ Presenter::SupabaseAuth.new(paint: paint).lines(addons_api.supabase_auth(app), app: app).each { |line| puts line }
61
+ end
62
+
51
63
  private
52
64
 
53
65
  def presenter = Presenter::Addon.new(paint: paint)
@@ -6,6 +6,7 @@ module Captive
6
6
  # dashboard. Un ajout est appliqué plus tard par captive-platform (réponse 202).
7
7
  class AddonsResource
8
8
  PATH = AppPath.new("addons")
9
+ SUPABASE_AUTH_PATH = AppPath.new("addons/supabase/auth")
9
10
 
10
11
  def initialize(api:)
11
12
  @api = api
@@ -13,6 +14,9 @@ module Captive
13
14
 
14
15
  def list(app) = @api.get(PATH.call(app))
15
16
  def add(app, addon) = @api.post(PATH.call(app), { addon: addon })
17
+
18
+ # En lecture seule : seule l'équipe plateforme modifie ces réglages, dans le dépôt GitOps.
19
+ def supabase_auth(app) = @api.get(SUPABASE_AUTH_PATH.call(app))
16
20
  end
17
21
  end
18
22
  end
@@ -23,6 +23,7 @@ require_relative "presenter/app_info"
23
23
  require_relative "presenter/scheduled_task"
24
24
  require_relative "presenter/domain"
25
25
  require_relative "presenter/addon"
26
+ require_relative "presenter/supabase_auth"
26
27
  require_relative "activity_trail"
27
28
  require_relative "errors"
28
29
  require_relative "ui/spinner"
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Captive
4
+ module Presenter
5
+ # Les réglages d'authentification de l'Add-on Supabase, en lecture seule comme sur la page
6
+ # du dashboard : une valeur que le dashboard n'a pas pu lire reste « inconnu ».
7
+ class SupabaseAuth
8
+ VALEURS = { true => "oui", false => "non" }.freeze
9
+
10
+ def initialize(paint:)
11
+ @paint = paint
12
+ end
13
+
14
+ def lines(settings, app:)
15
+ [
16
+ [ "Auto-confirmation des emails", valeur(settings["autoconfirm"]), alerte(settings, app) ].compact.join(" "),
17
+ "Inscriptions ouvertes #{valeur(settings["signup_open"])}",
18
+ @paint.dim("Modifiable par l'équipe plateforme"),
19
+ ]
20
+ end
21
+
22
+ private
23
+
24
+ def valeur(value) = VALEURS.fetch(value, "inconnu")
25
+
26
+ def alerte(settings, app)
27
+ @paint.red("⚠ active en production") if settings["autoconfirm"] && app.end_with?("-production")
28
+ end
29
+ end
30
+ end
31
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Captive
4
- VERSION = "1.5.0"
4
+ VERSION = "1.6.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: captive-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Captive Studio
@@ -158,6 +158,7 @@ files:
158
158
  - lib/captive/presenter/domain.rb
159
159
  - lib/captive/presenter/log_colorizer.rb
160
160
  - lib/captive/presenter/scheduled_task.rb
161
+ - lib/captive/presenter/supabase_auth.rb
161
162
  - lib/captive/session_id.rb
162
163
  - lib/captive/session_token.rb
163
164
  - lib/captive/shell_completions.rb