@cat-factory/app 0.100.2 → 0.100.3

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.
@@ -137,6 +137,28 @@ async function testSavedKube() {
137
137
  }
138
138
  }
139
139
 
140
+ // Auto-probe a SAVED kube connection as soon as the window shows one, so the operator sees a
141
+ // LIVE verdict instead of a bare "connection established" card that only means a config is
142
+ // stored — the token can have silently expired (a `kubectl create token` token is short-lived)
143
+ // or the cluster been recreated, which the static card would misleadingly present as healthy.
144
+ // Keyed on the stored config so it re-probes after an edit, and resets when disconnected so a
145
+ // reconnect re-probes; the probe reuses the server-side saved token (empty secrets).
146
+ const autoTestedKubeKey = ref<string | null>(null)
147
+ watch(
148
+ kubeHandler,
149
+ (h) => {
150
+ if (!h) {
151
+ autoTestedKubeKey.value = null
152
+ return
153
+ }
154
+ const key = JSON.stringify(h.config)
155
+ if (autoTestedKubeKey.value === key) return
156
+ autoTestedKubeKey.value = key
157
+ void testSavedKube()
158
+ },
159
+ { immediate: true },
160
+ )
161
+
140
162
  async function testKubeOverride(payload: {
141
163
  config: KubeHandlerConfig
142
164
  secrets: Record<string, string>
@@ -1778,7 +1778,7 @@
1778
1778
  "remote-kubernetes": "Remote Kubernetes"
1779
1779
  },
1780
1780
  "kubernetesEngine": {
1781
- "localK3sHint": "Prefilled for a local k3s/k3d/kind cluster on this machine. Bind a ServiceAccount to a role, mint its token with `kubectl create token NAME -n NAMESPACE` (Kubernetes 1.24+), and paste it below. Then choose how the environment URL is derived, and edit the API server URL if your cluster listens on a different port.",
1781
+ "localK3sHint": "Prefilled for a local k3s/k3d/kind cluster on this machine. Bind a ServiceAccount to a role and paste a long-lived token below. Note a plain `kubectl create token NAME -n NAMESPACE` token expires in 1 hour: add `--duration=720h` for longer, or create a non-expiring kubernetes.io/service-account-token Secret and read it back. Then choose how the environment URL is derived, and edit the API server URL if your cluster listens on a different port.",
1782
1782
  "autoSetup": {
1783
1783
  "title": "Auto-setup with the CLI",
1784
1784
  "description": "Run this in your terminal to probe or provision a local cluster, mint a ServiceAccount token, and open this form pre-filled. Paste the token it prints, then Test and Save."
@@ -2277,7 +2277,7 @@
2277
2277
  "remote-kubernetes": "Kubernetes remoto"
2278
2278
  },
2279
2279
  "kubernetesEngine": {
2280
- "localK3sHint": "Precargado para un clúster local k3s/k3d/kind en esta máquina. Vincula una ServiceAccount a un rol, genera su token con `kubectl create token NAME -n NAMESPACE` (Kubernetes 1.24+) y pégalo abajo. Luego elige cómo se deriva la URL del entorno y edita la URL del API server si tu clúster escucha en otro puerto.",
2280
+ "localK3sHint": "Precargado para un clúster local k3s/k3d/kind en esta máquina. Vincula una ServiceAccount a un rol y pega abajo un token de larga duración. Ten en cuenta que un token de `kubectl create token NAME -n NAMESPACE` simple caduca en 1 hora: añade `--duration=720h` para que dure más, o crea un Secret kubernetes.io/service-account-token que no caduca y léelo. Luego elige cómo se deriva la URL del entorno y edita la URL del API server si tu clúster escucha en otro puerto.",
2281
2281
  "autoSetup": {
2282
2282
  "title": "Configuración automática con la CLI",
2283
2283
  "description": "Ejecútalo en tu terminal para detectar o aprovisionar un clúster local, generar un token de ServiceAccount y abrir este formulario ya rellenado. Pega el token que muestra y luego pulsa Probar y Guardar."
@@ -2277,7 +2277,7 @@
2277
2277
  "remote-kubernetes": "Kubernetes distant"
2278
2278
  },
2279
2279
  "kubernetesEngine": {
2280
- "localK3sHint": "Prérempli pour un cluster local k3s/k3d/kind sur cette machine. Liez un ServiceAccount à un rôle, générez son token avec `kubectl create token NAME -n NAMESPACE` (Kubernetes 1.24+) et collez-le ci-dessous. Choisissez ensuite comment l'URL de l'environnement est dérivée, et modifiez l'URL de l'API server si votre cluster écoute sur un autre port.",
2280
+ "localK3sHint": "Prérempli pour un cluster local k3s/k3d/kind sur cette machine. Liez un ServiceAccount à un rôle et collez ci-dessous un token de longue durée. Notez qu'un token `kubectl create token NAME -n NAMESPACE` simple expire au bout d'1 heure : ajoutez `--duration=720h` pour prolonger sa durée, ou créez un Secret kubernetes.io/service-account-token qui n'expire pas et relisez-le. Choisissez ensuite comment l'URL de l'environnement est dérivée, et modifiez l'URL de l'API server si votre cluster écoute sur un autre port.",
2281
2281
  "autoSetup": {
2282
2282
  "title": "Configuration automatique avec la CLI",
2283
2283
  "description": "Exécutez-le dans votre terminal pour détecter ou provisionner un cluster local, générer un jeton de ServiceAccount et ouvrir ce formulaire prérempli. Collez le jeton affiché, puis cliquez sur Tester et Enregistrer."
@@ -1728,7 +1728,7 @@
1728
1728
  "remote-kubernetes": "Kubernetes מרוחק"
1729
1729
  },
1730
1730
  "kubernetesEngine": {
1731
- "localK3sHint": "מולא מראש עבור אשכול k3s/k3d/kind מקומי במחשב הזה. קשרו ServiceAccount לתפקיד, הנפיקו עבורו token באמצעות `kubectl create token NAME -n NAMESPACE` (Kubernetes 1.24+) והדביקו אותו למטה. לאחר מכן בחרו כיצד נגזרת כתובת ה-URL של הסביבה, וערכו את כתובת ה-API server אם האשכול שלכם מאזין ביציאה אחרת.",
1731
+ "localK3sHint": "מולא מראש עבור אשכול k3s/k3d/kind מקומי במחשב הזה. קשרו ServiceAccount לתפקיד והדביקו למטה token בעל תוקף ארוך. שימו לב ש-token רגיל מ-`kubectl create token NAME -n NAMESPACE` פג תוקף לאחר שעה אחת: הוסיפו `--duration=720h` לתוקף ארוך יותר, או צרו Secret מסוג kubernetes.io/service-account-token שאינו פג וקראו אותו. לאחר מכן בחרו כיצד נגזרת כתובת ה-URL של הסביבה, וערכו את כתובת ה-API server אם האשכול שלכם מאזין ביציאה אחרת.",
1732
1732
  "autoSetup": {
1733
1733
  "title": "הגדרה אוטומטית באמצעות ה-CLI",
1734
1734
  "description": "הרץ זאת בטרמינל כדי לזהות או להקצות אשכול מקומי, ליצור אסימון ServiceAccount ולפתוח טופס זה כשהוא ממולא מראש. הדבק את האסימון המוצג, ולאחר מכן בצע בדיקה ושמירה."
@@ -1729,7 +1729,7 @@
1729
1729
  "remote-kubernetes": "リモート Kubernetes"
1730
1730
  },
1731
1731
  "kubernetesEngine": {
1732
- "localK3sHint": "このマシン上のローカル k3s/k3d/kind クラスター向けにあらかじめ入力されています。ServiceAccount をロールにバインドし、`kubectl create token NAME -n NAMESPACE`(Kubernetes 1.24 以降)でトークンを発行して下記に貼り付けてください。その後、環境 URL の導出方法を選択し、クラスターが別のポートで待ち受けている場合は API サーバー URL を編集してください。",
1732
+ "localK3sHint": "このマシン上のローカル k3s/k3d/kind クラスター向けにあらかじめ入力されています。ServiceAccount をロールにバインドし、長期間有効なトークンを下記に貼り付けてください。通常の `kubectl create token NAME -n NAMESPACE` のトークンは1時間で失効する点に注意してください。より長くするには `--duration=720h` を付け、失効しないトークンが必要な場合は kubernetes.io/service-account-token Secret を作成して読み取ってください。その後、環境 URL の導出方法を選択し、クラスターが別のポートで待ち受けている場合は API サーバー URL を編集してください。",
1733
1733
  "autoSetup": {
1734
1734
  "title": "CLI による自動セットアップ",
1735
1735
  "description": "これをターミナルで実行すると、ローカルクラスターを検出またはプロビジョニングし、ServiceAccount トークンを生成して、このフォームを事前入力した状態で開きます。表示されたトークンを貼り付けてから、テストして保存してください。"
@@ -2277,7 +2277,7 @@
2277
2277
  "remote-kubernetes": "Zdalny Kubernetes"
2278
2278
  },
2279
2279
  "kubernetesEngine": {
2280
- "localK3sHint": "Wstępnie wypełnione dla lokalnego klastra k3s/k3d/kind na tym komputerze. Powiąż ServiceAccount z rolą, wygeneruj jego token poleceniem `kubectl create token NAME -n NAMESPACE` (Kubernetes 1.24+) i wklej go poniżej. Następnie wybierz sposób ustalania adresu URL środowiska i zmień URL serwera API, jeśli Twój klaster nasłuchuje na innym porcie.",
2280
+ "localK3sHint": "Wstępnie wypełnione dla lokalnego klastra k3s/k3d/kind na tym komputerze. Powiąż ServiceAccount z rolą i wklej poniżej token o długim czasie ważności. Pamiętaj, że zwykły token z `kubectl create token NAME -n NAMESPACE` wygasa po 1 godzinie: dodaj `--duration=720h`, aby wydłużyć jego ważność, albo utwórz niewygasający Secret kubernetes.io/service-account-token i odczytaj go. Następnie wybierz sposób ustalania adresu URL środowiska i zmień URL serwera API, jeśli Twój klaster nasłuchuje na innym porcie.",
2281
2281
  "autoSetup": {
2282
2282
  "title": "Automatyczna konfiguracja przez CLI",
2283
2283
  "description": "Uruchom to w terminalu, aby wykryć lub udostępnić lokalny klaster, wygenerować token ServiceAccount i otworzyć ten formularz wstępnie wypełniony. Wklej wyświetlony token, a następnie kliknij Przetestuj i Zapisz."
@@ -1729,7 +1729,7 @@
1729
1729
  "remote-kubernetes": "Uzak Kubernetes"
1730
1730
  },
1731
1731
  "kubernetesEngine": {
1732
- "localK3sHint": "Bu makinedeki yerel bir k3s/k3d/kind kümesi için önceden dolduruldu. Bir ServiceAccount'u bir role bağlayın, `kubectl create token NAME -n NAMESPACE` (Kubernetes 1.24+) ile token'ını oluşturun ve aşağıya yapıştırın. Ardından ortam URL'sinin nasıl türetileceğini seçin ve kümeniz farklı bir bağlantı noktasını dinliyorsa API sunucu URL'sini düzenleyin.",
1732
+ "localK3sHint": "Bu makinedeki yerel bir k3s/k3d/kind kümesi için önceden dolduruldu. Bir ServiceAccount'u bir role bağlayın ve aşağıya uzun ömürlü bir token yapıştırın. Düz bir `kubectl create token NAME -n NAMESPACE` token'ının 1 saatte sona erdiğini unutmayın: daha uzun ömür için `--duration=720h` ekleyin veya süresi dolmayan bir kubernetes.io/service-account-token Secret oluşturup okuyun. Ardından ortam URL'sinin nasıl türetileceğini seçin ve kümeniz farklı bir bağlantı noktasını dinliyorsa API sunucu URL'sini düzenleyin.",
1733
1733
  "autoSetup": {
1734
1734
  "title": "CLI ile otomatik kurulum",
1735
1735
  "description": "Yerel bir kümeyi algılamak veya sağlamak, bir ServiceAccount belirteci oluşturmak ve bu formu önceden doldurulmuş olarak açmak için bunu terminalinizde çalıştırın. Yazdırdığı belirteci yapıştırın, ardından Test edin ve Kaydedin."
@@ -2277,7 +2277,7 @@
2277
2277
  "remote-kubernetes": "Віддалений Kubernetes"
2278
2278
  },
2279
2279
  "kubernetesEngine": {
2280
- "localK3sHint": "Попередньо заповнено для локального кластера k3s/k3d/kind на цьому комп'ютері. Прив'яжіть ServiceAccount до ролі, згенеруйте його токен командою `kubectl create token NAME -n NAMESPACE` (Kubernetes 1.24+) і вставте його нижче. Потім виберіть, як визначається URL середовища, і змініть URL сервера API, якщо ваш кластер слухає на іншому порту.",
2280
+ "localK3sHint": "Попередньо заповнено для локального кластера k3s/k3d/kind на цьому комп'ютері. Прив'яжіть ServiceAccount до ролі та вставте нижче токен із тривалим терміном дії. Зверніть увагу, що звичайний токен від `kubectl create token NAME -n NAMESPACE` втрачає чинність через 1 годину: додайте `--duration=720h`, щоб подовжити термін, або створіть Secret типу kubernetes.io/service-account-token, який не має терміну дії, і прочитайте його. Потім виберіть, як визначається URL середовища, і змініть URL сервера API, якщо ваш кластер слухає на іншому порту.",
2281
2281
  "autoSetup": {
2282
2282
  "title": "Автоматичне налаштування через CLI",
2283
2283
  "description": "Запустіть це в терміналі, щоб виявити або підготувати локальний кластер, згенерувати токен ServiceAccount і відкрити цю форму заздалегідь заповненою. Вставте показаний токен, потім натисніть «Перевірити» та «Зберегти»."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.100.2",
3
+ "version": "0.100.3",
4
4
  "description": "Reusable Nuxt layer for the Agent Architecture Board SPA (components, stores, composables, pages). Consume it from a thin deployment app via `extends: ['@cat-factory/app']` and point it at your backend with NUXT_PUBLIC_API_BASE. See deploy/frontend for an example.",
5
5
  "repository": {
6
6
  "type": "git",