@theoptimalpartner/npm-security-kit 2.0.0-beta.0 → 2.0.0-beta.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/CHANGELOG.md CHANGED
@@ -6,7 +6,9 @@ Cambios del paquete `@theoptimalpartner/npm-security-kit`. Formato basado en
6
6
  ## [2.0.0] - sin publicar
7
7
 
8
8
  Reescritura completa. La v2 es una CLI de Node sin dependencias que corre en el pipeline **antes de `npm ci`**.
9
- Sale primero como `2.0.0-beta.0`, con el dist-tag `beta`.
9
+ Sale primero como beta (`2.0.0-beta.N`), con el dist-tag `beta`. Desde la `2.0.0-beta.1`, el step del pipeline y
10
+ `init` usan `npx --yes --min-release-age=0`: `npx` no aplica `min-release-age-exclude` y, sin el flag, una versión
11
+ nueva del kit no se puede usar hasta cumplir 7 días.
10
12
 
11
13
  ### BREAKING
12
14
 
@@ -37,7 +39,7 @@ Sale primero como `2.0.0-beta.0`, con el dist-tag `beta`.
37
39
  `scripts/security-check.sh`, `.husky/` (y el `"prepare": "husky install"`), los scripts `security:*` del
38
40
  `package.json` y el `SECURITY.md` generado.
39
41
  2. Si la v1 reemplazó el `bitbucket-pipelines.yml`, recuperar el del repo desde git.
40
- 3. Correr `npx --yes @theoptimalpartner/npm-security-kit@2.0.0 init` y seguir los pasos que imprime (README).
42
+ 3. Correr `npx --yes --min-release-age=0 @theoptimalpartner/npm-security-kit@2.0.0 init` y seguir los pasos que imprime (README).
41
43
 
42
44
  ## [1.0.2] y anteriores
43
45
 
package/README.md CHANGED
@@ -57,7 +57,7 @@ definitions:
57
57
  - npm
58
58
  script:
59
59
  # Antes de instalar: malware, vulnerabilidades, Node, .npmrc, install scripts, Dockerfiles
60
- - npx --yes @theoptimalpartner/npm-security-kit@2.0.0 check
60
+ - npx --yes --min-release-age=0 @theoptimalpartner/npm-security-kit@2.0.0 check
61
61
  - npm ci # con strict-allow-scripts, los scripts no aprobados cortan acá
62
62
  - npm audit signatures
63
63
  - npm run build
@@ -73,10 +73,13 @@ pipelines:
73
73
 
74
74
  - **Antes de `npm ci`:** `npm audit` funciona solo con el lockfile, así que el malware se detecta antes de que
75
75
  corra su `postinstall`.
76
- - **Versión fija** (`@2.0.0`): subir la política en un repo es un cambio visible en su PR. El scope
77
- `@theoptimalpartner/*` está excluido de `min-release-age`, así que un parche del kit se puede usar el mismo día.
76
+ - **Versión fija** (`@2.0.0`): subir la política en un repo es un cambio visible en su PR.
77
+ - **`--min-release-age=0` solo para `npx`:** `npx` no aplica `min-release-age-exclude` (npm 11.19.1 lo aplica al
78
+ instalar, no al resolver el paquete de `npx`). Sin el flag, dentro de un repo con `min-release-age=7` una versión
79
+ nueva del kit no se puede usar hasta cumplir 7 días (`ETARGET … with a date before`). Afecta solo al kit: la
80
+ versión va fija y no tiene dependencias. El `npm ci` que sigue aplica los 7 días como siempre.
78
81
  - **`npm audit signatures`** va después de `npm ci` porque necesita `node_modules`.
79
- - Para guardar el resultado como artefacto: `npx --yes @theoptimalpartner/npm-security-kit@2.0.0 check --json > npm-security-kit.json`.
82
+ - Para guardar el resultado como artefacto: `npx --yes --min-release-age=0 @theoptimalpartner/npm-security-kit@2.0.0 check --json > npm-security-kit.json`.
80
83
 
81
84
  ### Dockerfile
82
85
 
@@ -95,11 +98,11 @@ Si el `.dockerignore` excluye el `.npmrc` (por ejemplo con `.*`), agregar `!.npm
95
98
  Una vez por repo, en una rama:
96
99
 
97
100
  ```bash
98
- npx --yes @theoptimalpartner/npm-security-kit@2.0.0 init --dry-run
101
+ npx --yes --min-release-age=0 @theoptimalpartner/npm-security-kit@2.0.0 init --dry-run
99
102
  ```
100
103
 
101
104
  ```bash
102
- npx --yes @theoptimalpartner/npm-security-kit@2.0.0 init
105
+ npx --yes --min-release-age=0 @theoptimalpartner/npm-security-kit@2.0.0 init
103
106
  ```
104
107
 
105
108
  `init`:
@@ -116,7 +119,7 @@ Después: revisar el diff, aprobar o negar los install scripts, aplicar el step
116
119
  ### En local
117
120
 
118
121
  ```bash
119
- npx --yes @theoptimalpartner/npm-security-kit@2.0.0 check
122
+ npx --yes --min-release-age=0 @theoptimalpartner/npm-security-kit@2.0.0 check
120
123
  ```
121
124
 
122
125
  No se instala como devDependency ni usa husky: el `.npmrc` protege el `npm install` local y el pipeline es el
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theoptimalpartner/npm-security-kit",
3
- "version": "2.0.0-beta.0",
3
+ "version": "2.0.0-beta.1",
4
4
  "description": "Revisa el lockfile antes de npm ci: malware, vulnerabilidades, versión de Node, .npmrc, install scripts y Dockerfiles",
5
5
  "type": "module",
6
6
  "bin": {
package/src/init.js CHANGED
@@ -85,7 +85,7 @@ export function pipelineStep(kitVersion, nodeVersion) {
85
85
  - npm
86
86
  script:
87
87
  # Antes de instalar: malware, vulnerabilidades, Node, .npmrc, install scripts, Dockerfiles
88
- - npx --yes ${PACKAGE}@${kitVersion} check
88
+ - npx --yes --min-release-age=0 ${PACKAGE}@${kitVersion} check
89
89
  - npm ci
90
90
  - npm audit signatures
91
91
  - npm run build
@@ -227,7 +227,7 @@ export async function runInit(ctx, { dryRun = false, stdout = process.stdout, co
227
227
  dryRun ? 'Correr init sin --dry-run.' : 'Revisar el diff: git diff .npmrc package.json',
228
228
  'Aprobar o negar los install scripts pendientes.',
229
229
  'Agregar el step al pipeline y corregir los Dockerfiles.',
230
- `Correr el chequeo completo: npx --yes ${PACKAGE}@${ctx.kitVersion} check`,
230
+ `Correr el chequeo completo: npx --yes --min-release-age=0 ${PACKAGE}@${ctx.kitVersion} check`,
231
231
  ];
232
232
  steps.forEach((s, i) => say(` ${i + 1}. ${s}`));
233
233