@ninedeploy/schemas 0.3.0 → 0.5.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.
- package/dist/auth.d.ts +44 -2
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +97 -1
- package/dist/auth.js.map +1 -1
- package/dist/doctor.d.ts +270 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +99 -0
- package/dist/doctor.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/kernel.d.ts +14 -0
- package/dist/kernel.d.ts.map +1 -1
- package/dist/kernel.js +28 -1
- package/dist/kernel.js.map +1 -1
- package/dist/management.d.ts +91 -0
- package/dist/management.d.ts.map +1 -1
- package/dist/management.js +67 -2
- package/dist/management.js.map +1 -1
- package/dist/ninedeployManifest.d.ts.map +1 -1
- package/dist/ninedeployManifest.js +5 -3
- package/dist/ninedeployManifest.js.map +1 -1
- package/dist/runtimeVersions.d.ts +102 -0
- package/dist/runtimeVersions.d.ts.map +1 -0
- package/dist/runtimeVersions.js +153 -0
- package/dist/runtimeVersions.js.map +1 -0
- package/dist/secretScan.d.ts.map +1 -1
- package/dist/secretScan.js +29 -16
- package/dist/secretScan.js.map +1 -1
- package/dist/service.d.ts +191 -3
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +98 -5
- package/dist/service.js.map +1 -1
- package/dist/workspaces.d.ts +11 -2
- package/dist/workspaces.d.ts.map +1 -1
- package/dist/workspaces.js +8 -2
- package/dist/workspaces.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Curated runtime version catalog — the single source of truth for every
|
|
3
|
+
* language version NineDeploy suggests anywhere in the product (Manifest
|
|
4
|
+
* Creator presets, the CLI's `starterManifest`, the runtime version picker).
|
|
5
|
+
*
|
|
6
|
+
* Why this file exists: these versions used to be hand-written literals
|
|
7
|
+
* duplicated across `apps/web` and `packages/sdk`. Nobody owned them, so
|
|
8
|
+
* they drifted until the shipped defaults pinned runtimes that had gone
|
|
9
|
+
* end-of-life. Everything now derives from this one table.
|
|
10
|
+
*
|
|
11
|
+
* The catalog is *advisory*, never a constraint. `runtime.version` in the
|
|
12
|
+
* manifest schema stays free-form (`^\d+(?:\.\d+){0,2}$`), so an operator
|
|
13
|
+
* can pin any version their build needs — including an EOL one. What the
|
|
14
|
+
* catalog buys us is a sensible default plus an honest warning when the
|
|
15
|
+
* pinned version is no longer supported upstream.
|
|
16
|
+
*
|
|
17
|
+
* ── Maintaining this file ────────────────────────────────────────────────
|
|
18
|
+
* Bump `RUNTIME_CATALOG_REVIEWED` whenever you touch the table, and check
|
|
19
|
+
* it against upstream release schedules:
|
|
20
|
+
* Node https://nodejs.org/en/about/previous-releases
|
|
21
|
+
* Python https://devguide.python.org/versions/
|
|
22
|
+
* Go https://go.dev/doc/devel/release
|
|
23
|
+
* Ruby https://www.ruby-lang.org/en/downloads/branches/
|
|
24
|
+
* PHP https://www.php.net/supported-versions.php
|
|
25
|
+
* Java https://adoptium.net/support/
|
|
26
|
+
* Rust https://www.rust-lang.org/
|
|
27
|
+
*/
|
|
28
|
+
import type { RuntimeType } from './ninedeployManifest.js';
|
|
29
|
+
/**
|
|
30
|
+
* ISO date the table below was last checked against upstream schedules.
|
|
31
|
+
* Surfaced in the UI so a stale catalog is visible rather than silent.
|
|
32
|
+
*/
|
|
33
|
+
export declare const RUNTIME_CATALOG_REVIEWED = "2026-08-26";
|
|
34
|
+
/**
|
|
35
|
+
* Upstream support state of a version, ordered from healthiest to worst.
|
|
36
|
+
*
|
|
37
|
+
* - `current` — newest stable release; ahead of the recommended pin.
|
|
38
|
+
* - `lts` — long-term-support line; the safe production choice.
|
|
39
|
+
* - `maintenance` — still supported, but no longer the primary line.
|
|
40
|
+
* - `security` — security fixes only; no bug fixes.
|
|
41
|
+
* - `eol` — unsupported upstream. Usable, but nothing gets patched.
|
|
42
|
+
*/
|
|
43
|
+
export type RuntimeSupport = 'current' | 'lts' | 'maintenance' | 'security' | 'eol';
|
|
44
|
+
export interface RuntimeVersionOption {
|
|
45
|
+
/** Value written into `runtime.version` — matches the manifest regex. */
|
|
46
|
+
version: string;
|
|
47
|
+
/** Human label for the picker, e.g. "24 — Active LTS". */
|
|
48
|
+
label: string;
|
|
49
|
+
support: RuntimeSupport;
|
|
50
|
+
/** ISO date support ends (or ended). Omitted when upstream has not set one. */
|
|
51
|
+
eol?: string;
|
|
52
|
+
}
|
|
53
|
+
export interface RuntimeVersionCatalogEntry {
|
|
54
|
+
/** Display name used in advisory messages, e.g. "Node.js". */
|
|
55
|
+
name: string;
|
|
56
|
+
/** The version presets and the "recommended" hint use. Must appear in `options`. */
|
|
57
|
+
recommended: string;
|
|
58
|
+
/** Newest first — the picker renders them in this order. */
|
|
59
|
+
options: readonly RuntimeVersionOption[];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Versions offered per runtime. Only runtimes we can meaningfully pin appear
|
|
63
|
+
* here; `auto` and `static` have no version axis and are absent by design.
|
|
64
|
+
*
|
|
65
|
+
* Each list keeps a couple of EOL entries on purpose: teams migrating an
|
|
66
|
+
* existing app need to reproduce their current runtime before they can move
|
|
67
|
+
* off it, and an undocumented version they have to guess at is worse than a
|
|
68
|
+
* documented one carrying a warning.
|
|
69
|
+
*/
|
|
70
|
+
export declare const RUNTIME_VERSION_CATALOG: Partial<Record<RuntimeType, RuntimeVersionCatalogEntry>>;
|
|
71
|
+
/** Versions offered for a runtime type. Empty for types with no version axis. */
|
|
72
|
+
export declare function runtimeVersionOptions(type: RuntimeType): readonly RuntimeVersionOption[];
|
|
73
|
+
/**
|
|
74
|
+
* The version presets pin for a runtime, or `undefined` when the type has no
|
|
75
|
+
* version axis (`auto`, `static`) — in which case the manifest should omit
|
|
76
|
+
* `runtime.version` entirely and let Nixpacks decide.
|
|
77
|
+
*/
|
|
78
|
+
export declare function recommendedRuntimeVersion(type: RuntimeType): string | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* Resolve an operator-typed version to its catalog entry.
|
|
81
|
+
*
|
|
82
|
+
* Matching is longest-prefix on dot boundaries, so `20.18.1` resolves to
|
|
83
|
+
* Node's `20` entry and `3.12.4` to Python's `3.12` — pinning a patch
|
|
84
|
+
* release still yields the right support status. The dot boundary is what
|
|
85
|
+
* keeps `2` from matching `20`.
|
|
86
|
+
*/
|
|
87
|
+
export declare function findRuntimeVersion(type: RuntimeType, version: string): RuntimeVersionOption | undefined;
|
|
88
|
+
/** A note to show next to the version field. `error` is not a blocker — only a warning. */
|
|
89
|
+
export interface RuntimeVersionAdvisory {
|
|
90
|
+
level: 'error' | 'warn' | 'info';
|
|
91
|
+
message: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Describe the health of a pinned version, or `null` when there is nothing
|
|
95
|
+
* worth saying (supported version, no version pinned, runtime with no
|
|
96
|
+
* version axis).
|
|
97
|
+
*
|
|
98
|
+
* Deliberately never rejects: an EOL pin is a warning, not an error, because
|
|
99
|
+
* reproducing a legacy runtime is a legitimate reason to deploy one.
|
|
100
|
+
*/
|
|
101
|
+
export declare function runtimeVersionAdvisory(type: RuntimeType, version: string | undefined): RuntimeVersionAdvisory | null;
|
|
102
|
+
//# sourceMappingURL=runtimeVersions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeVersions.d.ts","sourceRoot":"","sources":["../src/runtimeVersions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,wBAAwB,eAAe,CAAC;AAErD;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,KAAK,GAAG,aAAa,GAAG,UAAU,GAAG,KAAK,CAAC;AAEpF,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,cAAc,CAAC;IACxB,+EAA+E;IAC/E,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,0BAA0B;IACzC,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAC1C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC,CA4E5F,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,oBAAoB,EAAE,CAExF;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAE/E;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,GACd,oBAAoB,GAAG,SAAS,CAIlC;AAED,2FAA2F;AAC3F,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,sBAAsB,GAAG,IAAI,CA+B/B"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ISO date the table below was last checked against upstream schedules.
|
|
3
|
+
* Surfaced in the UI so a stale catalog is visible rather than silent.
|
|
4
|
+
*/
|
|
5
|
+
export const RUNTIME_CATALOG_REVIEWED = '2026-08-26';
|
|
6
|
+
/**
|
|
7
|
+
* Versions offered per runtime. Only runtimes we can meaningfully pin appear
|
|
8
|
+
* here; `auto` and `static` have no version axis and are absent by design.
|
|
9
|
+
*
|
|
10
|
+
* Each list keeps a couple of EOL entries on purpose: teams migrating an
|
|
11
|
+
* existing app need to reproduce their current runtime before they can move
|
|
12
|
+
* off it, and an undocumented version they have to guess at is worse than a
|
|
13
|
+
* documented one carrying a warning.
|
|
14
|
+
*/
|
|
15
|
+
export const RUNTIME_VERSION_CATALOG = {
|
|
16
|
+
node: {
|
|
17
|
+
name: 'Node.js',
|
|
18
|
+
recommended: '24',
|
|
19
|
+
options: [
|
|
20
|
+
{ version: '26', label: '26 — Current', support: 'current', eol: '2029-04-30' },
|
|
21
|
+
{ version: '24', label: '24 — Active LTS', support: 'lts', eol: '2028-04-30' },
|
|
22
|
+
{ version: '22', label: '22 — Maintenance LTS', support: 'maintenance', eol: '2027-04-30' },
|
|
23
|
+
{ version: '20', label: '20 — end-of-life', support: 'eol', eol: '2026-04-30' },
|
|
24
|
+
{ version: '18', label: '18 — end-of-life', support: 'eol', eol: '2025-04-30' },
|
|
25
|
+
],
|
|
26
|
+
},
|
|
27
|
+
python: {
|
|
28
|
+
name: 'Python',
|
|
29
|
+
recommended: '3.14',
|
|
30
|
+
options: [
|
|
31
|
+
{ version: '3.14', label: '3.14 — latest stable', support: 'current', eol: '2030-10-31' },
|
|
32
|
+
{ version: '3.13', label: '3.13 — bugfix', support: 'maintenance', eol: '2029-10-31' },
|
|
33
|
+
{ version: '3.12', label: '3.12 — security fixes only', support: 'security', eol: '2028-10-31' },
|
|
34
|
+
{ version: '3.11', label: '3.11 — security fixes only', support: 'security', eol: '2027-10-31' },
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
go: {
|
|
38
|
+
name: 'Go',
|
|
39
|
+
recommended: '1.27',
|
|
40
|
+
options: [
|
|
41
|
+
{ version: '1.27', label: '1.27 — latest stable', support: 'current' },
|
|
42
|
+
{ version: '1.26', label: '1.26 — supported', support: 'maintenance' },
|
|
43
|
+
{ version: '1.25', label: '1.25 — end-of-life', support: 'eol' },
|
|
44
|
+
{ version: '1.24', label: '1.24 — end-of-life', support: 'eol' },
|
|
45
|
+
],
|
|
46
|
+
},
|
|
47
|
+
ruby: {
|
|
48
|
+
name: 'Ruby',
|
|
49
|
+
recommended: '3.4',
|
|
50
|
+
options: [
|
|
51
|
+
{ version: '4.0', label: '4.0 — latest stable', support: 'current' },
|
|
52
|
+
{ version: '3.4', label: '3.4 — normal maintenance', support: 'maintenance' },
|
|
53
|
+
{ version: '3.3', label: '3.3 — security fixes only', support: 'security', eol: '2027-03-31' },
|
|
54
|
+
{ version: '3.2', label: '3.2 — end-of-life', support: 'eol', eol: '2026-04-01' },
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
php: {
|
|
58
|
+
name: 'PHP',
|
|
59
|
+
recommended: '8.4',
|
|
60
|
+
options: [
|
|
61
|
+
{ version: '8.5', label: '8.5 — active support', support: 'current', eol: '2029-12-31' },
|
|
62
|
+
{ version: '8.4', label: '8.4 — active support', support: 'maintenance', eol: '2028-12-31' },
|
|
63
|
+
{ version: '8.3', label: '8.3 — security fixes only', support: 'security', eol: '2027-12-31' },
|
|
64
|
+
{ version: '8.2', label: '8.2 — security fixes only', support: 'security', eol: '2026-12-31' },
|
|
65
|
+
{ version: '8.1', label: '8.1 — end-of-life', support: 'eol', eol: '2025-12-31' },
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
java: {
|
|
69
|
+
name: 'Java',
|
|
70
|
+
recommended: '25',
|
|
71
|
+
options: [
|
|
72
|
+
{ version: '26', label: '26 — latest feature release (non-LTS)', support: 'current' },
|
|
73
|
+
{ version: '25', label: '25 — LTS', support: 'lts', eol: '2031-09-30' },
|
|
74
|
+
{ version: '21', label: '21 — LTS', support: 'lts', eol: '2029-12-31' },
|
|
75
|
+
{ version: '17', label: '17 — LTS', support: 'maintenance', eol: '2027-10-31' },
|
|
76
|
+
],
|
|
77
|
+
},
|
|
78
|
+
rust: {
|
|
79
|
+
name: 'Rust',
|
|
80
|
+
// Rust ships a new stable every six weeks and backports nothing, so any
|
|
81
|
+
// version below the newest stable is unsupported by definition. Expect
|
|
82
|
+
// this list to need a bump more often than the others.
|
|
83
|
+
recommended: '1.98',
|
|
84
|
+
options: [
|
|
85
|
+
{ version: '1.98', label: '1.98 — latest stable', support: 'current' },
|
|
86
|
+
{ version: '1.97', label: '1.97 — superseded', support: 'eol' },
|
|
87
|
+
{ version: '1.96', label: '1.96 — superseded', support: 'eol' },
|
|
88
|
+
{ version: '1.95', label: '1.95 — superseded', support: 'eol' },
|
|
89
|
+
],
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
/** Versions offered for a runtime type. Empty for types with no version axis. */
|
|
93
|
+
export function runtimeVersionOptions(type) {
|
|
94
|
+
return RUNTIME_VERSION_CATALOG[type]?.options ?? [];
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* The version presets pin for a runtime, or `undefined` when the type has no
|
|
98
|
+
* version axis (`auto`, `static`) — in which case the manifest should omit
|
|
99
|
+
* `runtime.version` entirely and let Nixpacks decide.
|
|
100
|
+
*/
|
|
101
|
+
export function recommendedRuntimeVersion(type) {
|
|
102
|
+
return RUNTIME_VERSION_CATALOG[type]?.recommended;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Resolve an operator-typed version to its catalog entry.
|
|
106
|
+
*
|
|
107
|
+
* Matching is longest-prefix on dot boundaries, so `20.18.1` resolves to
|
|
108
|
+
* Node's `20` entry and `3.12.4` to Python's `3.12` — pinning a patch
|
|
109
|
+
* release still yields the right support status. The dot boundary is what
|
|
110
|
+
* keeps `2` from matching `20`.
|
|
111
|
+
*/
|
|
112
|
+
export function findRuntimeVersion(type, version) {
|
|
113
|
+
return [...runtimeVersionOptions(type)]
|
|
114
|
+
.sort((a, b) => b.version.length - a.version.length)
|
|
115
|
+
.find((o) => version === o.version || version.startsWith(`${o.version}.`));
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Describe the health of a pinned version, or `null` when there is nothing
|
|
119
|
+
* worth saying (supported version, no version pinned, runtime with no
|
|
120
|
+
* version axis).
|
|
121
|
+
*
|
|
122
|
+
* Deliberately never rejects: an EOL pin is a warning, not an error, because
|
|
123
|
+
* reproducing a legacy runtime is a legitimate reason to deploy one.
|
|
124
|
+
*/
|
|
125
|
+
export function runtimeVersionAdvisory(type, version) {
|
|
126
|
+
const entry = RUNTIME_VERSION_CATALOG[type];
|
|
127
|
+
if (!entry || !version)
|
|
128
|
+
return null;
|
|
129
|
+
const match = findRuntimeVersion(type, version);
|
|
130
|
+
if (!match) {
|
|
131
|
+
return {
|
|
132
|
+
level: 'info',
|
|
133
|
+
message: `${entry.name} ${version} is not in NineDeploy's catalog (last reviewed ${RUNTIME_CATALOG_REVIEWED}). The build will still try it — Nixpacks resolves the version itself.`,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
// One shared clause for both levels: upstream dates are a label, not a
|
|
137
|
+
// tense, so the same wording works whether the date is past or future.
|
|
138
|
+
const support = match.eol ? ` Upstream support: ${match.eol}.` : '';
|
|
139
|
+
if (match.support === 'eol') {
|
|
140
|
+
return {
|
|
141
|
+
level: 'error',
|
|
142
|
+
message: `${entry.name} ${match.version} is end-of-life and no longer receives security patches. You can still deploy it — ${entry.recommended} is the recommended pin.${support}`,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
if (match.support === 'security') {
|
|
146
|
+
return {
|
|
147
|
+
level: 'warn',
|
|
148
|
+
message: `${entry.name} ${match.version} receives security fixes only — no bug fixes. Recommended pin: ${entry.recommended}.${support}`,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=runtimeVersions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeVersions.js","sourceRoot":"","sources":["../src/runtimeVersions.ts"],"names":[],"mappings":"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"}
|
package/dist/secretScan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secretScan.d.ts","sourceRoot":"","sources":["../src/secretScan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;2CAE2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"secretScan.d.ts","sourceRoot":"","sources":["../src/secretScan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;2CAE2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,aAAa,CAqExD,CAAC;AAEF,mDAAmD;AACnD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;CAClB;AAYD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAqBxD;AAED,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG5C"}
|
package/dist/secretScan.js
CHANGED
|
@@ -52,8 +52,11 @@ export const SECRET_PATTERNS = [
|
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
54
|
id: 'openai-secret',
|
|
55
|
-
description: 'OpenAI API key (sk-…)',
|
|
56
|
-
|
|
55
|
+
description: 'OpenAI API key (sk-… / sk-proj-…)',
|
|
56
|
+
// `(?!ant-)` keeps Anthropic keys single-matched under the anthropic-key
|
|
57
|
+
// rule; `proj-` is the current project-key prefix whose character set
|
|
58
|
+
// includes `-`/`_`.
|
|
59
|
+
regex: /\bsk-(?!ant-)(?:proj-)?[A-Za-z0-9_-]{40,}\b/,
|
|
57
60
|
},
|
|
58
61
|
{
|
|
59
62
|
id: 'anthropic-key',
|
|
@@ -81,6 +84,15 @@ export const SECRET_PATTERNS = [
|
|
|
81
84
|
regex: /\bBearer\s+eyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\b/,
|
|
82
85
|
},
|
|
83
86
|
];
|
|
87
|
+
// The scan appends the `g` flag to every pattern — a pattern that already
|
|
88
|
+
// declared it would produce `gg` and throw Invalid flag at scan time. Fail
|
|
89
|
+
// at import instead, where a developer sees it immediately.
|
|
90
|
+
for (const p of SECRET_PATTERNS) {
|
|
91
|
+
/* v8 ignore next 3 — developer-error guard, not reachable via valid patterns */
|
|
92
|
+
if (p.regex.flags.includes('g')) {
|
|
93
|
+
throw new Error(`secret pattern "${p.id}" must not declare the g flag (the scanner adds it)`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
84
96
|
/**
|
|
85
97
|
* Run every secret pattern across `text` and return every hit.
|
|
86
98
|
*
|
|
@@ -90,20 +102,21 @@ export const SECRET_PATTERNS = [
|
|
|
90
102
|
export function scanForSecrets(text) {
|
|
91
103
|
const hits = [];
|
|
92
104
|
for (const pattern of SECRET_PATTERNS) {
|
|
93
|
-
//
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
// matchAll requires the `g` flag; build a per-call global copy so the
|
|
106
|
+
// module-level regexes never carry stateful lastIndex between scans,
|
|
107
|
+
// and so EVERY occurrence is reported (the contract says "every hit").
|
|
108
|
+
const global = new RegExp(pattern.regex.source, `${pattern.regex.flags}g`);
|
|
109
|
+
for (const match of text.matchAll(global)) {
|
|
110
|
+
const start = match.index;
|
|
111
|
+
const end = start + match[0].length;
|
|
112
|
+
hits.push({
|
|
113
|
+
patternId: pattern.id,
|
|
114
|
+
description: pattern.description,
|
|
115
|
+
start,
|
|
116
|
+
end,
|
|
117
|
+
redacted: redact(match[0]),
|
|
118
|
+
});
|
|
119
|
+
}
|
|
107
120
|
}
|
|
108
121
|
// Sort by start position so the redacted-log line reads in document order.
|
|
109
122
|
return hits.sort((a, b) => a.start - b.start);
|
package/dist/secretScan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secretScan.js","sourceRoot":"","sources":["../src/secretScan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAWH,MAAM,CAAC,MAAM,eAAe,GAAiC;IAC3D;QACE,EAAE,EAAE,gBAAgB;QACpB,WAAW,EAAE,2BAA2B;QACxC,KAAK,EAAE,oBAAoB;KAC5B;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,WAAW,EAAE,sCAAsC;QACnD,KAAK,EAAE,yBAAyB;KACjC;IACD;QACE,EAAE,EAAE,yBAAyB;QAC7B,WAAW,EAAE,wCAAwC;QACrD,KAAK,EAAE,iCAAiC;KACzC;IACD;QACE,EAAE,EAAE,YAAY;QAChB,WAAW,EAAE,wCAAwC;QACrD,KAAK,EAAE,8BAA8B;KACtC;IACD;QACE,EAAE,EAAE,aAAa;QACjB,WAAW,EAAE,4BAA4B;QACzC,KAAK,EAAE,kCAAkC;KAC1C;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,WAAW,EAAE,oCAAoC;QACjD,KAAK,EAAE,8BAA8B;KACtC;IACD;QACE,EAAE,EAAE,wBAAwB;QAC5B,WAAW,EAAE,wCAAwC;QACrD,KAAK,EAAE,8BAA8B;KACtC;IACD;QACE,EAAE,EAAE,eAAe;QACnB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"secretScan.js","sourceRoot":"","sources":["../src/secretScan.ts"],"names":[],"mappings":"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"}
|
package/dist/service.d.ts
CHANGED
|
@@ -229,6 +229,7 @@ export declare const deployment: z.ZodObject<{
|
|
|
229
229
|
failed: "failed";
|
|
230
230
|
queued: "queued";
|
|
231
231
|
running: "running";
|
|
232
|
+
superseded: "superseded";
|
|
232
233
|
}>;
|
|
233
234
|
commitSha: z.ZodNullable<z.ZodString>;
|
|
234
235
|
message: z.ZodNullable<z.ZodString>;
|
|
@@ -239,6 +240,60 @@ export declare const deployment: z.ZodObject<{
|
|
|
239
240
|
createdAt: z.ZodString;
|
|
240
241
|
}, z.core.$strip>;
|
|
241
242
|
export type Deployment = z.infer<typeof deployment>;
|
|
243
|
+
/**
|
|
244
|
+
* A single row in the global deploy queue (`GET /v1/services/queue`).
|
|
245
|
+
*
|
|
246
|
+
* Same fields as `Deployment` plus the service + project metadata the
|
|
247
|
+
* panel needs to render "what is happening and what is coming next"
|
|
248
|
+
* without a follow-up round-trip. `imageDigest` is populated for image
|
|
249
|
+
* deploys where `commitSha` is null.
|
|
250
|
+
*/
|
|
251
|
+
export declare const queueItem: z.ZodObject<{
|
|
252
|
+
id: z.ZodNumber;
|
|
253
|
+
serviceId: z.ZodNumber;
|
|
254
|
+
serviceName: z.ZodString;
|
|
255
|
+
status: z.ZodEnum<{
|
|
256
|
+
building: "building";
|
|
257
|
+
deploying: "deploying";
|
|
258
|
+
queued: "queued";
|
|
259
|
+
}>;
|
|
260
|
+
commitSha: z.ZodNullable<z.ZodString>;
|
|
261
|
+
imageDigest: z.ZodNullable<z.ZodString>;
|
|
262
|
+
message: z.ZodNullable<z.ZodString>;
|
|
263
|
+
author: z.ZodNullable<z.ZodString>;
|
|
264
|
+
trigger: z.ZodString;
|
|
265
|
+
startedAt: z.ZodNullable<z.ZodString>;
|
|
266
|
+
finishedAt: z.ZodNullable<z.ZodString>;
|
|
267
|
+
createdAt: z.ZodString;
|
|
268
|
+
}, z.core.$strip>;
|
|
269
|
+
export type QueueItem = z.infer<typeof queueItem>;
|
|
270
|
+
export declare const queueResponse: z.ZodObject<{
|
|
271
|
+
items: z.ZodArray<z.ZodObject<{
|
|
272
|
+
id: z.ZodNumber;
|
|
273
|
+
serviceId: z.ZodNumber;
|
|
274
|
+
serviceName: z.ZodString;
|
|
275
|
+
status: z.ZodEnum<{
|
|
276
|
+
building: "building";
|
|
277
|
+
deploying: "deploying";
|
|
278
|
+
queued: "queued";
|
|
279
|
+
}>;
|
|
280
|
+
commitSha: z.ZodNullable<z.ZodString>;
|
|
281
|
+
imageDigest: z.ZodNullable<z.ZodString>;
|
|
282
|
+
message: z.ZodNullable<z.ZodString>;
|
|
283
|
+
author: z.ZodNullable<z.ZodString>;
|
|
284
|
+
trigger: z.ZodString;
|
|
285
|
+
startedAt: z.ZodNullable<z.ZodString>;
|
|
286
|
+
finishedAt: z.ZodNullable<z.ZodString>;
|
|
287
|
+
createdAt: z.ZodString;
|
|
288
|
+
}, z.core.$strip>>;
|
|
289
|
+
count: z.ZodNumber;
|
|
290
|
+
byStatus: z.ZodObject<{
|
|
291
|
+
queued: z.ZodNumber;
|
|
292
|
+
building: z.ZodNumber;
|
|
293
|
+
deploying: z.ZodNumber;
|
|
294
|
+
}, z.core.$strip>;
|
|
295
|
+
}, z.core.$strip>;
|
|
296
|
+
export type QueueResponse = z.infer<typeof queueResponse>;
|
|
242
297
|
export declare const createDomain: z.ZodObject<{
|
|
243
298
|
hostname: z.ZodString;
|
|
244
299
|
path: z.ZodDefault<z.ZodString>;
|
|
@@ -544,6 +599,7 @@ export declare const backup: z.ZodObject<{
|
|
|
544
599
|
}>;
|
|
545
600
|
status: z.ZodString;
|
|
546
601
|
sizeBytes: z.ZodNumber;
|
|
602
|
+
label: z.ZodNullable<z.ZodString>;
|
|
547
603
|
hasRemoteCopy: z.ZodOptional<z.ZodBoolean>;
|
|
548
604
|
createdAt: z.ZodString;
|
|
549
605
|
}, z.core.$strip>;
|
|
@@ -558,6 +614,7 @@ export declare const backupWithDb: z.ZodObject<{
|
|
|
558
614
|
}>;
|
|
559
615
|
status: z.ZodString;
|
|
560
616
|
sizeBytes: z.ZodNumber;
|
|
617
|
+
label: z.ZodNullable<z.ZodString>;
|
|
561
618
|
hasRemoteCopy: z.ZodOptional<z.ZodBoolean>;
|
|
562
619
|
createdAt: z.ZodString;
|
|
563
620
|
databaseName: z.ZodNullable<z.ZodString>;
|
|
@@ -623,12 +680,135 @@ export declare const template: z.ZodObject<{
|
|
|
623
680
|
}>>>;
|
|
624
681
|
cmd: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
625
682
|
dockerSocket: z.ZodOptional<z.ZodBoolean>;
|
|
683
|
+
composeContent: z.ZodOptional<z.ZodString>;
|
|
684
|
+
composeService: z.ZodOptional<z.ZodString>;
|
|
626
685
|
}, z.core.$strip>;
|
|
627
686
|
export type Template = z.infer<typeof template>;
|
|
628
687
|
/**
|
|
629
|
-
*
|
|
630
|
-
*
|
|
631
|
-
*
|
|
688
|
+
* Community template contribution (G-13). A `*.json`
|
|
689
|
+
* file dropped into `<dataDir>/community-templates/` is
|
|
690
|
+
* parsed against the `template` schema and surfaced in
|
|
691
|
+
* the `community.list` response. Files that fail to
|
|
692
|
+
* parse are reported in `errors` (one entry per file)
|
|
693
|
+
* so a single bad contribution does not hide the rest.
|
|
694
|
+
*/
|
|
695
|
+
export declare const communityTemplateEntrySchema: z.ZodObject<{
|
|
696
|
+
id: z.ZodString;
|
|
697
|
+
template: z.ZodObject<{
|
|
698
|
+
id: z.ZodString;
|
|
699
|
+
name: z.ZodString;
|
|
700
|
+
tagline: z.ZodString;
|
|
701
|
+
description: z.ZodString;
|
|
702
|
+
category: z.ZodString;
|
|
703
|
+
emoji: z.ZodString;
|
|
704
|
+
image: z.ZodString;
|
|
705
|
+
port: z.ZodNumber;
|
|
706
|
+
volumeMount: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
707
|
+
env: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
708
|
+
key: z.ZodString;
|
|
709
|
+
value: z.ZodString;
|
|
710
|
+
secret: z.ZodOptional<z.ZodBoolean>;
|
|
711
|
+
}, z.core.$strip>>>;
|
|
712
|
+
website: z.ZodOptional<z.ZodString>;
|
|
713
|
+
docs: z.ZodOptional<z.ZodString>;
|
|
714
|
+
featured: z.ZodOptional<z.ZodBoolean>;
|
|
715
|
+
runtimeVerified: z.ZodOptional<z.ZodBoolean>;
|
|
716
|
+
verifiedAt: z.ZodOptional<z.ZodISODate>;
|
|
717
|
+
requires: z.ZodOptional<z.ZodString>;
|
|
718
|
+
dbEngine: z.ZodOptional<z.ZodEnum<{
|
|
719
|
+
clickhouse: "clickhouse";
|
|
720
|
+
mariadb: "mariadb";
|
|
721
|
+
meilisearch: "meilisearch";
|
|
722
|
+
mongo: "mongo";
|
|
723
|
+
mysql: "mysql";
|
|
724
|
+
postgres: "postgres";
|
|
725
|
+
rabbitmq: "rabbitmq";
|
|
726
|
+
redis: "redis";
|
|
727
|
+
valkey: "valkey";
|
|
728
|
+
}>>;
|
|
729
|
+
databaseEnv: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
730
|
+
database: "database";
|
|
731
|
+
host: "host";
|
|
732
|
+
hostPort: "hostPort";
|
|
733
|
+
password: "password";
|
|
734
|
+
port: "port";
|
|
735
|
+
url: "url";
|
|
736
|
+
username: "username";
|
|
737
|
+
}>>>;
|
|
738
|
+
cmd: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
739
|
+
dockerSocket: z.ZodOptional<z.ZodBoolean>;
|
|
740
|
+
composeContent: z.ZodOptional<z.ZodString>;
|
|
741
|
+
composeService: z.ZodOptional<z.ZodString>;
|
|
742
|
+
}, z.core.$strip>;
|
|
743
|
+
file: z.ZodString;
|
|
744
|
+
bytes: z.ZodNumber;
|
|
745
|
+
mtime: z.ZodNumber;
|
|
746
|
+
}, z.core.$strip>;
|
|
747
|
+
export type CommunityTemplateEntry = z.infer<typeof communityTemplateEntrySchema>;
|
|
748
|
+
export declare const communityTemplateListResultSchema: z.ZodObject<{
|
|
749
|
+
entries: z.ZodArray<z.ZodObject<{
|
|
750
|
+
id: z.ZodString;
|
|
751
|
+
template: z.ZodObject<{
|
|
752
|
+
id: z.ZodString;
|
|
753
|
+
name: z.ZodString;
|
|
754
|
+
tagline: z.ZodString;
|
|
755
|
+
description: z.ZodString;
|
|
756
|
+
category: z.ZodString;
|
|
757
|
+
emoji: z.ZodString;
|
|
758
|
+
image: z.ZodString;
|
|
759
|
+
port: z.ZodNumber;
|
|
760
|
+
volumeMount: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
761
|
+
env: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
762
|
+
key: z.ZodString;
|
|
763
|
+
value: z.ZodString;
|
|
764
|
+
secret: z.ZodOptional<z.ZodBoolean>;
|
|
765
|
+
}, z.core.$strip>>>;
|
|
766
|
+
website: z.ZodOptional<z.ZodString>;
|
|
767
|
+
docs: z.ZodOptional<z.ZodString>;
|
|
768
|
+
featured: z.ZodOptional<z.ZodBoolean>;
|
|
769
|
+
runtimeVerified: z.ZodOptional<z.ZodBoolean>;
|
|
770
|
+
verifiedAt: z.ZodOptional<z.ZodISODate>;
|
|
771
|
+
requires: z.ZodOptional<z.ZodString>;
|
|
772
|
+
dbEngine: z.ZodOptional<z.ZodEnum<{
|
|
773
|
+
clickhouse: "clickhouse";
|
|
774
|
+
mariadb: "mariadb";
|
|
775
|
+
meilisearch: "meilisearch";
|
|
776
|
+
mongo: "mongo";
|
|
777
|
+
mysql: "mysql";
|
|
778
|
+
postgres: "postgres";
|
|
779
|
+
rabbitmq: "rabbitmq";
|
|
780
|
+
redis: "redis";
|
|
781
|
+
valkey: "valkey";
|
|
782
|
+
}>>;
|
|
783
|
+
databaseEnv: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
784
|
+
database: "database";
|
|
785
|
+
host: "host";
|
|
786
|
+
hostPort: "hostPort";
|
|
787
|
+
password: "password";
|
|
788
|
+
port: "port";
|
|
789
|
+
url: "url";
|
|
790
|
+
username: "username";
|
|
791
|
+
}>>>;
|
|
792
|
+
cmd: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
793
|
+
dockerSocket: z.ZodOptional<z.ZodBoolean>;
|
|
794
|
+
composeContent: z.ZodOptional<z.ZodString>;
|
|
795
|
+
composeService: z.ZodOptional<z.ZodString>;
|
|
796
|
+
}, z.core.$strip>;
|
|
797
|
+
file: z.ZodString;
|
|
798
|
+
bytes: z.ZodNumber;
|
|
799
|
+
mtime: z.ZodNumber;
|
|
800
|
+
}, z.core.$strip>>;
|
|
801
|
+
errors: z.ZodArray<z.ZodObject<{
|
|
802
|
+
file: z.ZodString;
|
|
803
|
+
error: z.ZodString;
|
|
804
|
+
}, z.core.$strip>>;
|
|
805
|
+
totalBytes: z.ZodNumber;
|
|
806
|
+
}, z.core.$strip>;
|
|
807
|
+
export type CommunityTemplateListResult = z.infer<typeof communityTemplateListResultSchema>;
|
|
808
|
+
/**
|
|
809
|
+
* One canonical Hub installation request. Internal port, volume, command,
|
|
810
|
+
* Docker socket and database mapping are intentionally absent: they are
|
|
811
|
+
* privileged registry-owned fields resolved by the server.
|
|
632
812
|
*/
|
|
633
813
|
export declare const deployTemplate: z.ZodObject<{
|
|
634
814
|
name: z.ZodOptional<z.ZodString>;
|
|
@@ -638,6 +818,7 @@ export declare const deployTemplate: z.ZodObject<{
|
|
|
638
818
|
healthPath: z.ZodOptional<z.ZodString>;
|
|
639
819
|
cpuShares: z.ZodOptional<z.ZodNumber>;
|
|
640
820
|
memLimitMb: z.ZodOptional<z.ZodNumber>;
|
|
821
|
+
image: z.ZodOptional<z.ZodString>;
|
|
641
822
|
env: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
642
823
|
key: z.ZodString;
|
|
643
824
|
value: z.ZodString;
|
|
@@ -647,6 +828,13 @@ export declare const deployTemplate: z.ZodObject<{
|
|
|
647
828
|
}, z.core.$strip>;
|
|
648
829
|
export type DeployTemplateInput = z.input<typeof deployTemplate>;
|
|
649
830
|
export type DeployTemplate = z.infer<typeof deployTemplate>;
|
|
831
|
+
/**
|
|
832
|
+
* Whether an image reference keeps the template's registry repository while
|
|
833
|
+
* changing only the tag (`directus/directus:latest` → `directus/directus:11.5`).
|
|
834
|
+
* Digest references and cross-repository swaps are refused: the Hub override
|
|
835
|
+
* exists to pin a version, not to run an arbitrary image under a template's name.
|
|
836
|
+
*/
|
|
837
|
+
export declare function sameImageRepository(templateImage: string, override: string): boolean;
|
|
650
838
|
export declare const domainEntry: z.ZodObject<{
|
|
651
839
|
id: z.ZodNumber;
|
|
652
840
|
hostname: z.ZodString;
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,WAAW;;;;EAAuC,CAAC;AAChE,eAAO,MAAM,SAAS;;;;EAA6C,CAAC;AAKpE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsDxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D;;;4EAG4E;AAC5E,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0CxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,2EAA2E;AAC3E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAC/D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE/D,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiElB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAG9C,eAAO,MAAM,YAAY;;;;;;;;;;;;;iBAQvB,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAE7D,eAAO,MAAM,MAAM;;;;;;;;;;iBAUjB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAE5C,eAAO,MAAM,aAAa;;iBAExB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|