@cat-factory/app 0.86.0 → 0.87.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.
- package/app/components/board/nodes/BlockNode.vue +25 -1
- package/app/components/github/AddServiceFromRepoModal.vue +9 -2
- package/app/stores/github.ts +8 -2
- package/i18n/locales/en.json +9 -4
- package/i18n/locales/es.json +10 -4
- package/i18n/locales/fr.json +10 -4
- package/i18n/locales/he.json +10 -4
- package/i18n/locales/ja.json +9 -4
- package/i18n/locales/pl.json +10 -4
- package/i18n/locales/tr.json +9 -4
- package/i18n/locales/uk.json +10 -4
- package/package.json +2 -2
|
@@ -201,8 +201,32 @@ const ITEM_ICON: Record<string, string> = {
|
|
|
201
201
|
</script>
|
|
202
202
|
|
|
203
203
|
<template>
|
|
204
|
+
<!-- ===================== Redacted: repo access denied ===================== -->
|
|
205
|
+
<!-- This service frame is backed by a repo linked via another member's personal access
|
|
206
|
+
token that the signed-in user can't reach. The server scrubbed its contents; the SPA
|
|
207
|
+
shows only the internal id + a "Permission denied" placeholder (never the repo). -->
|
|
204
208
|
<div
|
|
205
|
-
v-if="block"
|
|
209
|
+
v-if="block?.accessDenied"
|
|
210
|
+
class="w-56 overflow-hidden rounded-xl border border-slate-700 bg-slate-900/90 shadow-xl backdrop-blur"
|
|
211
|
+
:data-block-id="block.id"
|
|
212
|
+
data-testid="frame-access-denied"
|
|
213
|
+
>
|
|
214
|
+
<div class="flex items-center gap-2 border-b border-slate-800 px-3 py-2">
|
|
215
|
+
<span class="i-lucide-lock h-4 w-4 shrink-0 text-slate-400" />
|
|
216
|
+
<span class="truncate text-sm font-semibold text-slate-200">{{
|
|
217
|
+
t('board.frame.accessDenied.title')
|
|
218
|
+
}}</span>
|
|
219
|
+
</div>
|
|
220
|
+
<div class="px-3 py-3">
|
|
221
|
+
<p class="text-[11px] leading-snug text-slate-400">
|
|
222
|
+
{{ t('board.frame.accessDenied.hint') }}
|
|
223
|
+
</p>
|
|
224
|
+
<code class="mt-2 block truncate font-mono text-[11px] text-slate-500">{{ block.id }}</code>
|
|
225
|
+
</div>
|
|
226
|
+
</div>
|
|
227
|
+
|
|
228
|
+
<div
|
|
229
|
+
v-else-if="block"
|
|
206
230
|
class="relative"
|
|
207
231
|
:data-block-id="block.id"
|
|
208
232
|
@pointerenter="enterFrame(block.id)"
|
|
@@ -27,6 +27,7 @@ const typeItems = useFrameRepoTypeItems()
|
|
|
27
27
|
const ui = useUiStore()
|
|
28
28
|
const github = useGitHubStore()
|
|
29
29
|
const board = useBoardStore()
|
|
30
|
+
const services = useServicesStore()
|
|
30
31
|
const toast = useToast()
|
|
31
32
|
const { freeFramePosition, focusFrame } = useFramePlacement()
|
|
32
33
|
|
|
@@ -65,9 +66,12 @@ watch(
|
|
|
65
66
|
const needsGitHub = computed(() => github.available === true && !github.connected)
|
|
66
67
|
|
|
67
68
|
// Repos already backing a board service can't be added again — UNLESS they're a
|
|
68
|
-
// monorepo, which can host several services (each at its own subdirectory).
|
|
69
|
+
// monorepo, which can host several services (each at its own subdirectory). Derived from
|
|
70
|
+
// the account's service catalog (each service carries the repo it targets), since the repo
|
|
71
|
+
// projection no longer carries a repo→block link.
|
|
69
72
|
const onBoardIds = computed(
|
|
70
|
-
() =>
|
|
73
|
+
() =>
|
|
74
|
+
new Set(services.catalog.map((s) => s.repoGithubId).filter((id): id is number => id != null)),
|
|
71
75
|
)
|
|
72
76
|
|
|
73
77
|
// Map an available repo to a combobox item. The label carries the private/monorepo/
|
|
@@ -77,6 +81,9 @@ function toRepoItem(r: GitHubAvailableRepo) {
|
|
|
77
81
|
const suffix = [
|
|
78
82
|
r.private ? t('github.addService.repoLabel.private') : '',
|
|
79
83
|
r.isMonorepo ? t('github.addService.repoLabel.monorepo') : '',
|
|
84
|
+
// Reachable only via the signed-in user's PAT (not the workspace App) — its frame is
|
|
85
|
+
// hidden from members without their own access.
|
|
86
|
+
r.personal ? t('github.addService.repoLabel.personal') : '',
|
|
80
87
|
onBoard ? t('github.addService.repoLabel.onBoard') : '',
|
|
81
88
|
].join('')
|
|
82
89
|
return { label: `${r.owner}/${r.name}${suffix}`, value: r.githubId, disabled: onBoard }
|
package/app/stores/github.ts
CHANGED
|
@@ -14,6 +14,7 @@ import type {
|
|
|
14
14
|
ResyncRequest,
|
|
15
15
|
} from '~/types/domain'
|
|
16
16
|
import { useWorkspaceStore } from '~/stores/workspace'
|
|
17
|
+
import { useServicesStore } from '~/stores/services'
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* GitHub integration state: the workspace's App installation, the projected
|
|
@@ -62,9 +63,14 @@ export const useGitHubStore = defineStore('github', () => {
|
|
|
62
63
|
return repos.value.find((r) => r.githubId === repoGithubId)
|
|
63
64
|
}
|
|
64
65
|
|
|
65
|
-
/**
|
|
66
|
+
/**
|
|
67
|
+
* The repo backing a board service frame, if any — resolved through the account-owned
|
|
68
|
+
* Service bound to the frame (the sole repo↔frame linkage; the projection carries no
|
|
69
|
+
* repo→block column).
|
|
70
|
+
*/
|
|
66
71
|
function repoForBlock(blockId: string): GitHubRepo | undefined {
|
|
67
|
-
|
|
72
|
+
const service = useServicesStore().serviceByFrameBlock[blockId]
|
|
73
|
+
return service?.repoGithubId != null ? repoFor(service.repoGithubId) : undefined
|
|
68
74
|
}
|
|
69
75
|
|
|
70
76
|
function pullsForRepo(repoGithubId: number): GitHubPullRequest[] {
|
package/i18n/locales/en.json
CHANGED
|
@@ -281,7 +281,11 @@
|
|
|
281
281
|
"dragTask": "Drag task",
|
|
282
282
|
"dragToResize": "Drag to resize",
|
|
283
283
|
"addFirstTask": "Add the first task",
|
|
284
|
-
"createInitiativeTitle": "Create initiative"
|
|
284
|
+
"createInitiativeTitle": "Create initiative",
|
|
285
|
+
"accessDenied": {
|
|
286
|
+
"title": "Permission denied",
|
|
287
|
+
"hint": "You don't have access to the repository backing this service."
|
|
288
|
+
}
|
|
285
289
|
},
|
|
286
290
|
"decisionBadge": {
|
|
287
291
|
"decisionNeeded": "Decision needed",
|
|
@@ -1660,9 +1664,9 @@
|
|
|
1660
1664
|
"environment-provider": "Custom HTTP provider",
|
|
1661
1665
|
"environment-providerDesc": "Provision ephemeral environments through your own HTTP management API. Best when you already have bespoke preview-env tooling.",
|
|
1662
1666
|
"compose": "Docker Compose preview env",
|
|
1663
|
-
"composeDesc": "Stand the repo's own docker-compose.yml up on a local Docker daemon as the Tester's URL. Best for local Compose-based apps.
|
|
1667
|
+
"composeDesc": "Stand the repo's own docker-compose.yml up on a local Docker daemon as the Tester's URL. Best for local Compose-based apps. Supports pre-built images or building from source; needs a Docker daemon, so local deployments only."
|
|
1664
1668
|
},
|
|
1665
|
-
"dockerComposeInfo": "Docker Compose services stand up on the runtime's local Docker: no connection needed (the run's container must support Docker-in-Docker).",
|
|
1669
|
+
"dockerComposeInfo": "Docker Compose services stand up on the runtime's local Docker: no connection needed (the run's container must support Docker-in-Docker). Configure the service, port, and image source (pull pre-built or build from source) on the service's environment settings.",
|
|
1666
1670
|
"engine": {
|
|
1667
1671
|
"local-k3s": "Local k3s",
|
|
1668
1672
|
"remote-kubernetes": "Remote Kubernetes"
|
|
@@ -2557,7 +2561,8 @@
|
|
|
2557
2561
|
"repoLabel": {
|
|
2558
2562
|
"private": " (private)",
|
|
2559
2563
|
"monorepo": " · monorepo",
|
|
2560
|
-
"onBoard": " · already on board"
|
|
2564
|
+
"onBoard": " · already on board",
|
|
2565
|
+
"personal": " · personal (your token)"
|
|
2561
2566
|
},
|
|
2562
2567
|
"monorepoLabel": "This is a monorepo (hosts more than one service)",
|
|
2563
2568
|
"monorepoDescription": "Add several services from one repo, each pinned to a subdirectory.",
|
package/i18n/locales/es.json
CHANGED
|
@@ -251,7 +251,11 @@
|
|
|
251
251
|
"dragTask": "Arrastrar tarea",
|
|
252
252
|
"dragToResize": "Arrastra para cambiar el tamaño",
|
|
253
253
|
"addFirstTask": "Añade la primera tarea",
|
|
254
|
-
"createInitiativeTitle": "Crear iniciativa"
|
|
254
|
+
"createInitiativeTitle": "Crear iniciativa",
|
|
255
|
+
"accessDenied": {
|
|
256
|
+
"title": "Permiso denegado",
|
|
257
|
+
"hint": "No tienes acceso al repositorio que respalda este servicio."
|
|
258
|
+
}
|
|
255
259
|
},
|
|
256
260
|
"decisionBadge": {
|
|
257
261
|
"decisionNeeded": "Decisión necesaria",
|
|
@@ -2104,9 +2108,10 @@
|
|
|
2104
2108
|
"testEnvBackend": {
|
|
2105
2109
|
"label": "Dónde se ejecutan los entornos de prueba",
|
|
2106
2110
|
"local-compose": "docker-compose en contenedor",
|
|
2107
|
-
"environment-provider": "Proveedor de entornos"
|
|
2111
|
+
"environment-provider": "Proveedor de entornos",
|
|
2112
|
+
"composeDesc": "Levanta el docker-compose.yml del propio repositorio en un daemon de Docker local como URL del Tester. Ideal para apps locales basadas en Compose. Admite imágenes prediseñadas o compilación desde el código fuente; requiere un daemon de Docker, por lo que solo en despliegues locales."
|
|
2108
2113
|
},
|
|
2109
|
-
"dockerComposeInfo": "Los servicios de Docker Compose se levantan en el Docker local del runtime: no
|
|
2114
|
+
"dockerComposeInfo": "Los servicios de Docker Compose se levantan en el Docker local del runtime: no se necesita conexión (el contenedor de la ejecución debe admitir Docker-in-Docker). Configura el servicio, el puerto y el origen de la imagen (usar prediseñada o compilar desde el código fuente) en los ajustes de entorno del servicio.",
|
|
2110
2115
|
"engine": {
|
|
2111
2116
|
"local-k3s": "k3s local",
|
|
2112
2117
|
"remote-kubernetes": "Kubernetes remoto"
|
|
@@ -2481,7 +2486,8 @@
|
|
|
2481
2486
|
"repoLabel": {
|
|
2482
2487
|
"private": " (privado)",
|
|
2483
2488
|
"monorepo": " · monorepo",
|
|
2484
|
-
"onBoard": " · ya en el tablero"
|
|
2489
|
+
"onBoard": " · ya en el tablero",
|
|
2490
|
+
"personal": " · personal (tu token)"
|
|
2485
2491
|
},
|
|
2486
2492
|
"monorepoLabel": "Es un monorepo (aloja más de un servicio)",
|
|
2487
2493
|
"monorepoDescription": "Añade varios servicios desde un repositorio, cada uno fijado a un subdirectorio.",
|
package/i18n/locales/fr.json
CHANGED
|
@@ -251,7 +251,11 @@
|
|
|
251
251
|
"dragTask": "Faire glisser la tâche",
|
|
252
252
|
"dragToResize": "Glisser pour redimensionner",
|
|
253
253
|
"addFirstTask": "Ajouter la première tâche",
|
|
254
|
-
"createInitiativeTitle": "Creer une initiative"
|
|
254
|
+
"createInitiativeTitle": "Creer une initiative",
|
|
255
|
+
"accessDenied": {
|
|
256
|
+
"title": "Autorisation refusée",
|
|
257
|
+
"hint": "Vous n'avez pas accès au dépôt sur lequel repose ce service."
|
|
258
|
+
}
|
|
255
259
|
},
|
|
256
260
|
"decisionBadge": {
|
|
257
261
|
"decisionNeeded": "Décision requise",
|
|
@@ -2104,9 +2108,10 @@
|
|
|
2104
2108
|
"testEnvBackend": {
|
|
2105
2109
|
"label": "Où s'exécutent les environnements de test",
|
|
2106
2110
|
"local-compose": "docker-compose dans le conteneur",
|
|
2107
|
-
"environment-provider": "Fournisseur d'environnements"
|
|
2111
|
+
"environment-provider": "Fournisseur d'environnements",
|
|
2112
|
+
"composeDesc": "Démarre le docker-compose.yml du dépôt sur un démon Docker local comme URL du Testeur. Idéal pour les applications locales basées sur Compose. Prend en charge les images préconstruites ou la construction depuis les sources ; nécessite un démon Docker, donc uniquement pour les déploiements locaux."
|
|
2108
2113
|
},
|
|
2109
|
-
"dockerComposeInfo": "Les services Docker Compose démarrent sur le Docker local du runtime: aucune connexion requise (le conteneur
|
|
2114
|
+
"dockerComposeInfo": "Les services Docker Compose démarrent sur le Docker local du runtime : aucune connexion requise (le conteneur d’exécution doit prendre en charge Docker-in-Docker). Configurez le service, le port et la source de l’image (image préconstruite ou construction depuis les sources) dans les paramètres d’environnement du service.",
|
|
2110
2115
|
"engine": {
|
|
2111
2116
|
"local-k3s": "k3s local",
|
|
2112
2117
|
"remote-kubernetes": "Kubernetes distant"
|
|
@@ -2481,7 +2486,8 @@
|
|
|
2481
2486
|
"repoLabel": {
|
|
2482
2487
|
"private": " (privé)",
|
|
2483
2488
|
"monorepo": " · monorepo",
|
|
2484
|
-
"onBoard": " · déjà sur le tableau"
|
|
2489
|
+
"onBoard": " · déjà sur le tableau",
|
|
2490
|
+
"personal": " · personnel (votre jeton)"
|
|
2485
2491
|
},
|
|
2486
2492
|
"monorepoLabel": "Ceci est un monorepo (héberge plusieurs services)",
|
|
2487
2493
|
"monorepoDescription": "Ajoutez plusieurs services depuis un même dépôt, chacun rattaché à un sous-répertoire.",
|
package/i18n/locales/he.json
CHANGED
|
@@ -251,7 +251,11 @@
|
|
|
251
251
|
"dragTask": "גרור משימה",
|
|
252
252
|
"dragToResize": "גרור לשינוי גודל",
|
|
253
253
|
"addFirstTask": "הוסף את המשימה הראשונה",
|
|
254
|
-
"createInitiativeTitle": "יצירת יוזמה"
|
|
254
|
+
"createInitiativeTitle": "יצירת יוזמה",
|
|
255
|
+
"accessDenied": {
|
|
256
|
+
"title": "הגישה נדחתה",
|
|
257
|
+
"hint": "אין לך גישה למאגר שעליו מבוסס שירות זה."
|
|
258
|
+
}
|
|
255
259
|
},
|
|
256
260
|
"decisionBadge": {
|
|
257
261
|
"decisionNeeded": "נדרשת החלטה",
|
|
@@ -1612,9 +1616,10 @@
|
|
|
1612
1616
|
"kubernetes": "אשכול Kubernetes",
|
|
1613
1617
|
"kubernetesDesc": "הקצה מרחב שמות לכל PR באשכול Kubernetes שאתה מפעיל.",
|
|
1614
1618
|
"environment-provider": "ספק HTTP מותאם",
|
|
1615
|
-
"environment-providerDesc": "הקצה סביבות ארעיות דרך ממשק ניהול HTTP משלך."
|
|
1619
|
+
"environment-providerDesc": "הקצה סביבות ארעיות דרך ממשק ניהול HTTP משלך.",
|
|
1620
|
+
"composeDesc": "מריץ את קובץ docker-compose.yml של המאגר עצמו על דימון Docker מקומי ככתובת ה-URL של הבוחן. מתאים בעיקר לאפליקציות מקומיות מבוססות Compose. תומך בתמונות בנויות מראש או בבנייה מקוד המקור; דורש דימון Docker, ולכן פריסות מקומיות בלבד."
|
|
1616
1621
|
},
|
|
1617
|
-
"dockerComposeInfo": "שירותי Docker Compose עולים על ה-Docker המקומי של
|
|
1622
|
+
"dockerComposeInfo": "שירותי Docker Compose עולים על ה-Docker המקומי של סביבת הריצה: אין צורך בחיבור (מכולת ההרצה חייבת לתמוך ב-Docker-in-Docker). הגדר את השירות, הפורט ומקור התמונה (משיכת תמונה בנויה מראש או בנייה מקוד המקור) בהגדרות הסביבה של השירות.",
|
|
1618
1623
|
"engine": {
|
|
1619
1624
|
"local-k3s": "k3s מקומי",
|
|
1620
1625
|
"remote-kubernetes": "Kubernetes מרוחק"
|
|
@@ -2492,7 +2497,8 @@
|
|
|
2492
2497
|
"repoLabel": {
|
|
2493
2498
|
"private": " (פרטי)",
|
|
2494
2499
|
"monorepo": " · מונורפו",
|
|
2495
|
-
"onBoard": " · כבר על הלוח"
|
|
2500
|
+
"onBoard": " · כבר על הלוח",
|
|
2501
|
+
"personal": " · אישי (הטוקן שלך)"
|
|
2496
2502
|
},
|
|
2497
2503
|
"monorepoLabel": "זהו מונורפו (מארח יותר משירות אחד)",
|
|
2498
2504
|
"monorepoDescription": "הוסף כמה שירותים ממאגר אחד, כל אחד מוצמד לתת-ספרייה.",
|
package/i18n/locales/ja.json
CHANGED
|
@@ -251,7 +251,11 @@
|
|
|
251
251
|
"dragTask": "タスクをドラッグ",
|
|
252
252
|
"dragToResize": "ドラッグしてサイズ変更",
|
|
253
253
|
"addFirstTask": "最初のタスクを追加",
|
|
254
|
-
"createInitiativeTitle": "イニシアチブを作成"
|
|
254
|
+
"createInitiativeTitle": "イニシアチブを作成",
|
|
255
|
+
"accessDenied": {
|
|
256
|
+
"title": "アクセスが拒否されました",
|
|
257
|
+
"hint": "このサービスの基盤となるリポジトリにアクセスする権限がありません。"
|
|
258
|
+
}
|
|
255
259
|
},
|
|
256
260
|
"decisionBadge": {
|
|
257
261
|
"decisionNeeded": "判断が必要",
|
|
@@ -1614,9 +1618,9 @@
|
|
|
1614
1618
|
"environment-provider": "カスタム HTTP プロバイダー",
|
|
1615
1619
|
"environment-providerDesc": "自前の HTTP 管理 API を通じて一時的な環境をプロビジョニングします。",
|
|
1616
1620
|
"compose": "Docker Compose プレビュー環境",
|
|
1617
|
-
"composeDesc": "リポジトリ自身の docker-compose.yml をローカルの Docker デーモンで起動し、テスターの URL として使用します。ローカルの Compose
|
|
1621
|
+
"composeDesc": "リポジトリ自身の docker-compose.yml をローカルの Docker デーモンで起動し、テスターの URL として使用します。ローカルの Compose ベースのアプリに最適です。ビルド済みイメージまたはソースからのビルドに対応。Docker デーモンが必要なため、ローカルデプロイのみ。"
|
|
1618
1622
|
},
|
|
1619
|
-
"dockerComposeInfo": "Docker Compose サービスはランタイムのローカル Docker
|
|
1623
|
+
"dockerComposeInfo": "Docker Compose サービスはランタイムのローカル Docker 上で起動します。接続は不要です(実行コンテナが Docker-in-Docker をサポートしている必要があります)。サービス、ポート、イメージソース(ビルド済みを取得するかソースからビルドするか)はサービスの環境設定で構成してください。",
|
|
1620
1624
|
"engine": {
|
|
1621
1625
|
"local-k3s": "ローカル k3s",
|
|
1622
1626
|
"remote-kubernetes": "リモート Kubernetes"
|
|
@@ -2494,7 +2498,8 @@
|
|
|
2494
2498
|
"repoLabel": {
|
|
2495
2499
|
"private": " (プライベート)",
|
|
2496
2500
|
"monorepo": " · モノレポ",
|
|
2497
|
-
"onBoard": " · すでにボード上"
|
|
2501
|
+
"onBoard": " · すでにボード上",
|
|
2502
|
+
"personal": " · 個人(自分のトークン)"
|
|
2498
2503
|
},
|
|
2499
2504
|
"monorepoLabel": "これはモノレポです (複数のサービスをホストしています)",
|
|
2500
2505
|
"monorepoDescription": "1つのリポジトリから複数のサービスを追加し、それぞれをサブディレクトリに固定します。",
|
package/i18n/locales/pl.json
CHANGED
|
@@ -251,7 +251,11 @@
|
|
|
251
251
|
"dragTask": "Przeciągnij zadanie",
|
|
252
252
|
"dragToResize": "Przeciągnij, aby zmienić rozmiar",
|
|
253
253
|
"addFirstTask": "Dodaj pierwsze zadanie",
|
|
254
|
-
"createInitiativeTitle": "Utworz inicjatywe"
|
|
254
|
+
"createInitiativeTitle": "Utworz inicjatywe",
|
|
255
|
+
"accessDenied": {
|
|
256
|
+
"title": "Brak uprawnień",
|
|
257
|
+
"hint": "Nie masz dostępu do repozytorium powiązanego z tą usługą."
|
|
258
|
+
}
|
|
255
259
|
},
|
|
256
260
|
"decisionBadge": {
|
|
257
261
|
"decisionNeeded": "Wymagana decyzja",
|
|
@@ -2104,9 +2108,10 @@
|
|
|
2104
2108
|
"testEnvBackend": {
|
|
2105
2109
|
"label": "Gdzie działają środowiska testowe",
|
|
2106
2110
|
"local-compose": "docker-compose w kontenerze",
|
|
2107
|
-
"environment-provider": "Dostawca środowisk"
|
|
2111
|
+
"environment-provider": "Dostawca środowisk",
|
|
2112
|
+
"composeDesc": "Uruchamia własny plik docker-compose.yml repozytorium na lokalnym demonie Dockera jako adres URL Testera. Najlepsze dla lokalnych aplikacji opartych na Compose. Obsługuje gotowe obrazy lub budowanie ze źródeł; wymaga demona Dockera, więc tylko wdrożenia lokalne."
|
|
2108
2113
|
},
|
|
2109
|
-
"dockerComposeInfo": "Usługi Docker Compose
|
|
2114
|
+
"dockerComposeInfo": "Usługi Docker Compose uruchamiają się na lokalnym Dockerze środowiska uruchomieniowego: połączenie nie jest potrzebne (kontener uruchomienia musi obsługiwać Docker-in-Docker). Skonfiguruj usługę, port i źródło obrazu (pobranie gotowego lub budowanie ze źródeł) w ustawieniach środowiska usługi.",
|
|
2110
2115
|
"engine": {
|
|
2111
2116
|
"local-k3s": "Lokalny k3s",
|
|
2112
2117
|
"remote-kubernetes": "Zdalny Kubernetes"
|
|
@@ -2481,7 +2486,8 @@
|
|
|
2481
2486
|
"repoLabel": {
|
|
2482
2487
|
"private": " (prywatne)",
|
|
2483
2488
|
"monorepo": " · monorepo",
|
|
2484
|
-
"onBoard": " · już na tablicy"
|
|
2489
|
+
"onBoard": " · już na tablicy",
|
|
2490
|
+
"personal": " · osobiste (Twój token)"
|
|
2485
2491
|
},
|
|
2486
2492
|
"monorepoLabel": "To jest monorepo (zawiera więcej niż jedną usługę)",
|
|
2487
2493
|
"monorepoDescription": "Dodaj kilka usług z jednego repozytorium, każdą przypiętą do podkatalogu.",
|
package/i18n/locales/tr.json
CHANGED
|
@@ -251,7 +251,11 @@
|
|
|
251
251
|
"dragTask": "Görevi sürükle",
|
|
252
252
|
"dragToResize": "Yeniden boyutlandırmak için sürükle",
|
|
253
253
|
"addFirstTask": "İlk görevi ekle",
|
|
254
|
-
"createInitiativeTitle": "Girisim olustur"
|
|
254
|
+
"createInitiativeTitle": "Girisim olustur",
|
|
255
|
+
"accessDenied": {
|
|
256
|
+
"title": "İzin reddedildi",
|
|
257
|
+
"hint": "Bu hizmetin dayandığı depoya erişiminiz yok."
|
|
258
|
+
}
|
|
255
259
|
},
|
|
256
260
|
"decisionBadge": {
|
|
257
261
|
"decisionNeeded": "Karar gerekiyor",
|
|
@@ -1614,9 +1618,9 @@
|
|
|
1614
1618
|
"environment-provider": "Özel HTTP sağlayıcısı",
|
|
1615
1619
|
"environment-providerDesc": "Geçici ortamları kendi HTTP yönetim API'niz aracılığıyla sağlayın.",
|
|
1616
1620
|
"compose": "Docker Compose önizleme ortamı",
|
|
1617
|
-
"composeDesc": "Deponun kendi docker-compose.yml dosyasını yerel bir Docker
|
|
1621
|
+
"composeDesc": "Deponun kendi docker-compose.yml dosyasını yerel bir Docker arka plan hizmetinde Test Edici URL’si olarak ayağa kaldırır. Yerel Compose tabanlı uygulamalar için idealdir. Önceden oluşturulmuş imgeleri veya kaynaktan derlemeyi destekler; bir Docker arka plan hizmeti gerektirir, bu nedenle yalnızca yerel dağıtımlarda çalışır."
|
|
1618
1622
|
},
|
|
1619
|
-
"dockerComposeInfo": "Docker Compose
|
|
1623
|
+
"dockerComposeInfo": "Docker Compose hizmetleri çalışma zamanının yerel Docker’ında ayağa kalkar: bağlantı gerekmez (çalıştırmanın kapsayıcısı Docker-in-Docker’ı desteklemelidir). Hizmeti, bağlantı noktasını ve imge kaynağını (önceden oluşturulmuş imge çekme veya kaynaktan derleme) hizmetin ortam ayarlarında yapılandırın.",
|
|
1620
1624
|
"engine": {
|
|
1621
1625
|
"local-k3s": "Yerel k3s",
|
|
1622
1626
|
"remote-kubernetes": "Uzak Kubernetes"
|
|
@@ -2494,7 +2498,8 @@
|
|
|
2494
2498
|
"repoLabel": {
|
|
2495
2499
|
"private": " (özel)",
|
|
2496
2500
|
"monorepo": " · monorepo",
|
|
2497
|
-
"onBoard": " · zaten panoda"
|
|
2501
|
+
"onBoard": " · zaten panoda",
|
|
2502
|
+
"personal": " · kişisel (kendi belirteciniz)"
|
|
2498
2503
|
},
|
|
2499
2504
|
"monorepoLabel": "Bu bir monorepo (birden fazla servis barındırır)",
|
|
2500
2505
|
"monorepoDescription": "Tek depodan, her biri bir alt dizine sabitlenmiş birkaç servis ekleyin.",
|
package/i18n/locales/uk.json
CHANGED
|
@@ -251,7 +251,11 @@
|
|
|
251
251
|
"dragTask": "Перетягнути завдання",
|
|
252
252
|
"dragToResize": "Перетягніть, щоб змінити розмір",
|
|
253
253
|
"addFirstTask": "Додати перше завдання",
|
|
254
|
-
"createInitiativeTitle": "Створити ініціативу"
|
|
254
|
+
"createInitiativeTitle": "Створити ініціативу",
|
|
255
|
+
"accessDenied": {
|
|
256
|
+
"title": "Доступ заборонено",
|
|
257
|
+
"hint": "У вас немає доступу до репозиторію, що стоїть за цією службою."
|
|
258
|
+
}
|
|
255
259
|
},
|
|
256
260
|
"decisionBadge": {
|
|
257
261
|
"decisionNeeded": "Потрібне рішення",
|
|
@@ -2104,9 +2108,10 @@
|
|
|
2104
2108
|
"testEnvBackend": {
|
|
2105
2109
|
"label": "Де виконуються тестові середовища",
|
|
2106
2110
|
"local-compose": "docker-compose у контейнері",
|
|
2107
|
-
"environment-provider": "Провайдер середовищ"
|
|
2111
|
+
"environment-provider": "Провайдер середовищ",
|
|
2112
|
+
"composeDesc": "Піднімає власний docker-compose.yml репозиторію на локальному демоні Docker як URL Тестувальника. Найкраще підходить для локальних застосунків на основі Compose. Підтримує готові образи або збирання з вихідного коду; потребує демона Docker, тому лише для локальних розгортань."
|
|
2108
2113
|
},
|
|
2109
|
-
"dockerComposeInfo": "Служби Docker Compose піднімаються на локальному Docker середовища виконання:
|
|
2114
|
+
"dockerComposeInfo": "Служби Docker Compose піднімаються на локальному Docker середовища виконання: підключення не потрібне (контейнер запуску має підтримувати Docker-in-Docker). Налаштуйте службу, порт і джерело образу (завантаження готового чи збирання з вихідного коду) у налаштуваннях середовища служби.",
|
|
2110
2115
|
"engine": {
|
|
2111
2116
|
"local-k3s": "Локальний k3s",
|
|
2112
2117
|
"remote-kubernetes": "Віддалений Kubernetes"
|
|
@@ -2481,7 +2486,8 @@
|
|
|
2481
2486
|
"repoLabel": {
|
|
2482
2487
|
"private": " (приватний)",
|
|
2483
2488
|
"monorepo": " · монорепозиторій",
|
|
2484
|
-
"onBoard": " · уже на дошці"
|
|
2489
|
+
"onBoard": " · уже на дошці",
|
|
2490
|
+
"personal": " · особистий (ваш токен)"
|
|
2485
2491
|
},
|
|
2486
2492
|
"monorepoLabel": "Це монорепозиторій (містить більше одного сервісу)",
|
|
2487
2493
|
"monorepoDescription": "Додайте кілька сервісів з одного репозиторію, кожен прикріплений до підкаталогу.",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.87.1",
|
|
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",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"valibot": "^1.4.2",
|
|
35
35
|
"vue": "^3.5.39",
|
|
36
36
|
"wretch": "^3.0.9",
|
|
37
|
-
"@cat-factory/contracts": "0.
|
|
37
|
+
"@cat-factory/contracts": "0.95.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@toad-contracts/testing": "0.3.2",
|