@nitra/cursor 1.6.24 → 1.6.27

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/mdc/k8s.mdc CHANGED
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: K8s YAML — $schema (yaml-language-server); lint-k8s (kubeconform, kubescape); check-k8s
3
- version: '1.5'
3
+ version: '1.7'
4
4
  globs: "**/k8s/**/*.{yaml,yml}"
5
5
  alwaysApply: false
6
6
  ---
@@ -28,9 +28,9 @@ alwaysApply: false
28
28
 
29
29
  **Залежності:** виконувані файли kubeconform і kubescape у **PATH**; не додавай їх у **devDependencies** npm (аналогія до `v8r` у `n-text.mdc`). Локально: наприклад `brew install kubeconform kubescape` або релізи з GitHub.
30
30
 
31
- **Версія Kubernetes для kubeconform** має відповідати PIN yannh у цьому правилі та в **`check-k8s.mjs`** (зараз **`-kubernetes-version 1.29.1`** для набору **`v1.29.1-standalone-strict`**). Для CRD додатково підключай реєстр [datreeio/CRDs-catalog](https://github.com/datreeio/CRDs-catalog) другим **`-schema-location`**, як у [прикладах kubeconform](https://github.com/yannh/kubeconform#readme). За потреби **`-ignore-missing-schemas`**, якщо частина CRD ще без публічної схеми.
31
+ **Версія Kubernetes для kubeconform** має відповідати PIN yannh у цьому правилі та в **`check-k8s.mjs`** (зараз **`-kubernetes-version 1.33.9`** semver без префікса `v`, еквівалент релізу **v1.33.9**; набір схем **`v1.33.9-standalone-strict`**). Для CRD додатково підключай реєстр [datreeio/CRDs-catalog](https://github.com/datreeio/CRDs-catalog) другим **`-schema-location`**, як у [прикладах kubeconform](https://github.com/yannh/kubeconform#readme). За потреби **`-ignore-missing-schemas`**, якщо частина CRD ще без публічної схеми.
32
32
 
33
- **kubescape:** типово **`kubescape scan <каталог-k8s>`**; поріг серйозності підлаштуй під проєкт (наприклад **`--severity-threshold high`**). Перший запуск може завантажувати артефакти — у CI потрібна мережа або [offline](https://github.com/kubescape/kubescape#readme).
33
+ **kubescape:** типово **`kubescape scan <каталог-k8s>`**; поріг серйозності підлаштуй під проєкт (наприклад **`--severity-threshold high`**). Перший запуск може завантажувати артефакти — у CI потрібна мережа або [offline](https://github.com/kubescape/kubescape#readme). На відміну від kubeconform, у **kubescape scan** немає прапорця **`-kubernetes-version`**: перевірка йде за **framework/control** (NSA, MITRE, CIS тощо), а не проти OpenAPI-схеми конкретного релізу Kubernetes. **Орієнтир** для репозиторію той самий, що й для kubeconform — кластер **v1.33.9** (див. **`-kubernetes-version 1.33.9`** вище); для CIS і подібних наближень обирай актуальний framework під політику команди (**`kubescape list frameworks`**, див. [CLI reference](https://github.com/kubescape/kubescape/blob/master/docs/cli-reference.md)).
34
34
 
35
35
  У репозиторії пакета **`@nitra/cursor`** скрипт **`lint-k8s`** делегує обхід дерев і виклики **`npm/scripts/run-k8s.mjs`**. У інших проєктах можна скопіювати цей скрипт або зібрати еквівалентні команди в **`package.json`**.
36
36
 
@@ -115,7 +115,7 @@ jobs:
115
115
 
116
116
  ## Що закодовано в `check-k8s.mjs`
117
117
 
118
- При зміні правил синхронно оновлюй **`YANNH_PIN`**, **`YANNH_GROUPS`**, а в **`run-k8s.mjs`** — константу **`KUBERNETES_VERSION`** (число з PIN, наприклад `v1.29.1-standalone-strict` → **`1.29.1`**).
118
+ При зміні правил синхронно оновлюй **`YANNH_PIN`**, **`YANNH_REF`** (якщо зміниться гілка за замовчуванням у репо yannh), **`YANNH_GROUPS`**, а в **`run-k8s.mjs`** — константу **`KUBERNETES_VERSION`** (число з PIN, наприклад `v1.33.9-standalone-strict` → **`1.33.9`**).
119
119
 
120
120
  - Обхід з пропуском `node_modules`, `.git`, `dist`, `coverage`, `.turbo`, `.next`.
121
121
  - **`file:`** у `$schema` — URL до apiVersion/kind не звіряється; **`https:`** — kustomization за іменем файлу → Schema Store; `v1` → yannh; група з `YANNH_GROUPS` → yannh; інакше → datree.
@@ -130,11 +130,11 @@ jobs:
130
130
  Орієнтир — **перший документ** (до наступного `---`).
131
131
 
132
132
  1. **Ім’я** `kustomization.yaml` або `kustomization.yml` → `https://json.schemastore.org/kustomization.json`.
133
- 2. **`apiVersion: v1`** → yannh, PIN **`v1.29.1-standalone-strict`**:
134
- `https://raw.githubusercontent.com/yannh/kubernetes-json-schema/<PIN>/<kind>-v1.json`
133
+ 2. **`apiVersion: v1`** → yannh, PIN набору схем **`v1.33.9-standalone-strict`**, ref репозиторію для raw URL — **`master`** (каталог версії не є коренем репо на GitHub):
134
+ `https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/<PIN>/<kind>-v1.json`
135
135
  `<kind>`: літери в нижньому регістрі без роздільників між CamelCase (наприклад `Service` → `service`).
136
136
  3. **`apiVersion: group/version`** і **group** у **`YANNH_GROUPS`** у скрипті → yannh:
137
- `https://raw.githubusercontent.com/yannh/kubernetes-json-schema/<PIN>/<kind>-<group-з-крапками-як-дефіси>-<version>.json`
137
+ `https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/<PIN>/<kind>-<group-з-крапками-як-дефіси>-<version>.json`
138
138
  Приклади: `apps/v1` + `Deployment` → `deployment-apps-v1.json`; `networking.k8s.io/v1` + `Ingress` → `ingress-networking-k8s-io-v1.json`.
139
139
  4. **Інакше** (CRD тощо) → [datreeio/CRDs-catalog](https://github.com/datreeio/CRDs-catalog):
140
140
  `https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/CRDs/<group>/<kind>_<version>.json`
@@ -103,7 +103,10 @@ spec:
103
103
  В Dockerfile потрібно додати команду для стиснення файлів, які потім використовуватимуться з `gzip_static on`:
104
104
 
105
105
  ```dockerfile
106
- RUN for s in js css map xml webmanifest html wasm; do find /usr/share/nginx/html -type f -name "*.$$s" -exec gzip -k {} +; done
106
+ RUN find /usr/share/nginx/html -type f \( \
107
+ -name '*.js' -o -name '*.css' -o -name '*.map' -o -name '*.xml' -o \
108
+ -name '*.webmanifest' -o -name '*.html' -o -name '*.wasm' -o -name '*.ttf' \
109
+ \) -exec gzip -k {} +
107
110
  ```
108
111
 
109
112
  Поруч з файлом default.conf.template повинні бути конфігураційні файли *.ini для різних середовищ. В Dockerfile повинна бути команда, для заміни плейсхолдерів в цих файлах на значення з середовища:
package/mdc/text.mdc CHANGED
@@ -144,7 +144,7 @@ jobs:
144
144
  {
145
145
  "version": "0.2",
146
146
  "language": "nitra",
147
- "ignorePaths": ["**/node_modules/**", "**/vscode-extension/**", "**/.git/**", ".vscode", "report"],
147
+ "ignorePaths": ["**/node_modules/**", "**/vscode-extension/**", "**/.git/**", ".vscode", "report", "*.svg", "**/k8s/**/*.yaml"],
148
148
  "import": ["@nitra/cspell-dict/cspell-ext.json"],
149
149
  "words": []
150
150
  }
@@ -190,7 +190,7 @@ jobs:
190
190
  {
191
191
  "version": "0.2",
192
192
  "language": "en,uk,nitra",
193
- "ignorePaths": ["**/node_modules/**", "**/vscode-extension/**", "**/.git/**", ".vscode", "report"],
193
+ "ignorePaths": ["**/node_modules/**", "**/vscode-extension/**", "**/.git/**", ".vscode", "report", "*.svg", "**/k8s/**/*.yaml"],
194
194
  "import": [
195
195
  "@nitra/cspell-dict/cspell-ext.json",
196
196
  "@cspell/dict-uk-ua/cspell-ext.json"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nitra/cursor",
3
- "version": "1.6.24",
3
+ "version": "1.6.27",
4
4
  "description": "CLI для завантаження cursor-правил (префікс n-) у локальний репозиторій",
5
5
  "keywords": [
6
6
  "cli",
@@ -12,11 +12,14 @@ import { pass } from './utils/pass.mjs'
12
12
  import { walkDir } from './utils/walkDir.mjs'
13
13
 
14
14
  /** Версія набору схем yannh — узгоджено з k8s.mdc */
15
- const YANNH_PIN = 'v1.29.1-standalone-strict'
15
+ const YANNH_PIN = 'v1.33.9-standalone-strict'
16
+
17
+ /** Гілка репозиторію yannh/kubernetes-json-schema для raw.githubusercontent.com (каталог набору — у підшляху після ref). */
18
+ const YANNH_REF = 'master'
16
19
 
17
20
  const KUSTOMIZATION_SCHEMA = 'https://json.schemastore.org/kustomization.json'
18
21
 
19
- const YANNH_BASE = `https://raw.githubusercontent.com/yannh/kubernetes-json-schema/${YANNH_PIN}/`
22
+ const YANNH_BASE = `https://raw.githubusercontent.com/yannh/kubernetes-json-schema/${YANNH_REF}/${YANNH_PIN}/`
20
23
 
21
24
  const DATREE_CRD_BASE = 'https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/CRDs/'
22
25
 
@@ -10,6 +10,7 @@
10
10
  * (локально: Homebrew, релізи GitHub; у CI — крок установки з k8s.mdc).
11
11
  *
12
12
  * Версія `-kubernetes-version` для kubeconform узгоджена з PIN yannh у check-k8s.mjs / k8s.mdc.
13
+ * Kubescape не має аналога цього прапорця; орієнтир цільового кластера — та сама лінія релізу (див. k8s.mdc).
13
14
  */
14
15
  import { spawnSync } from 'node:child_process'
15
16
  import { basename, dirname } from 'node:path'
@@ -17,7 +18,7 @@ import { basename, dirname } from 'node:path'
17
18
  import { walkDir } from './utils/walkDir.mjs'
18
19
 
19
20
  /** Версія Kubernetes для kubeconform — синхронно з YANNH_PIN (без префікса v і суфікса -standalone-strict). */
20
- const KUBERNETES_VERSION = '1.29.1'
21
+ const KUBERNETES_VERSION = '1.33.9'
21
22
 
22
23
  /** Додатковий реєстр схем для CRD (як у README kubeconform). */
23
24
  const DATREE_CRD_SCHEMA_LOCATION =
@@ -93,6 +94,7 @@ function runKubeconform(dirs) {
93
94
 
94
95
  /**
95
96
  * Запускає kubescape scan для кожного каталогу окремо (узгоджено з прикладами CLI).
97
+ * Немає прапорця версії Kubernetes — за потреби додай `scan framework <ім’я>` під CIS/інші набори.
96
98
  * @param {string[]} dirs абсолютні шляхи до `…/k8s`
97
99
  * @returns {number} 0 при успіху, інакше код останнього невдалого scan або 127, якщо kubescape відсутній у PATH
98
100
  */