rampway 0.5.1 → 0.5.2
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/README.md +1 -0
- package/build/src/cli.d.ts.map +1 -1
- package/build/src/cli.js +10 -5
- package/build/src/cli.js.map +1 -1
- package/build/src/commands/context.d.ts +12 -0
- package/build/src/commands/context.d.ts.map +1 -1
- package/build/src/commands/context.js +13 -2
- package/build/src/commands/context.js.map +1 -1
- package/build/src/commands/plan.js +1 -1
- package/build/src/commands/plan.js.map +1 -1
- package/docs/config-reference.md +16 -0
- package/docs/velocious-deployment-api.md +6 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -52,6 +52,7 @@ Setup, credential boundaries, isolation, static checks, and Docker-capable coord
|
|
|
52
52
|
rampway init
|
|
53
53
|
rampway production validate
|
|
54
54
|
rampway production plan
|
|
55
|
+
rampway production plan <revision>
|
|
55
56
|
rampway production plan --json
|
|
56
57
|
rampway production deploy
|
|
57
58
|
rampway production deploy <revision>
|
package/build/src/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.js"],"names":[],"mappings":";AAmDA;;;GAGG;AACH,2BAHW,MAAM,EAAE,GACN,OAAO,CAAC,IAAI,CAAC,CAUzB;AAED;;;;;;;GAOG;AACH,wCAHW,MAAM,EAAE,GACN;IAAC,OAAO,EAAE,MAAM,GAAC,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,GAAC,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,QAAQ,EAAE,cAAc,CAAA;CAAC,CAgC9G"}
|
package/build/src/cli.js
CHANGED
|
@@ -12,6 +12,7 @@ import { tasksCommand } from "./commands/tasks.js";
|
|
|
12
12
|
import { taskCommand } from "./commands/task.js";
|
|
13
13
|
import { initCommand } from "./commands/init.js";
|
|
14
14
|
import { isValidOperationalTaskName } from "./config/validate-config.js";
|
|
15
|
+
import { isGitRevision } from "./core/git-source.js";
|
|
15
16
|
/** @type {Record<string, Function>} */
|
|
16
17
|
const COMMANDS = {
|
|
17
18
|
init: initCommand,
|
|
@@ -73,13 +74,17 @@ function resolveInvocation(argv) {
|
|
|
73
74
|
return { command: positional[0], stageName: undefined, options };
|
|
74
75
|
}
|
|
75
76
|
const [stageName, command, ...operands] = positional;
|
|
76
|
-
if (command === "deploy") {
|
|
77
|
+
if (command === "deploy" || command === "plan") {
|
|
77
78
|
if (operands.length > 1)
|
|
78
|
-
throw new Error(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
throw new Error(`Command '${command}' accepts at most one revision.`);
|
|
80
|
+
if (operands[0] !== undefined) {
|
|
81
|
+
if (command === "plan" && !isGitRevision(operands[0])) {
|
|
82
|
+
throw new Error("Plan revision must be 7 to 64 hexadecimal characters.");
|
|
83
|
+
}
|
|
84
|
+
// An explicit positional revision overrides every other source;
|
|
85
|
+
// otherwise the command's --revision/--branch/config precedence stands.
|
|
82
86
|
options.revision = operands[0];
|
|
87
|
+
}
|
|
83
88
|
}
|
|
84
89
|
else if (command === "task") {
|
|
85
90
|
if (operands.length !== 1)
|
package/build/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.js"],"names":[],"mappings":";AACA,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAA;AACpC,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAA;AAEtC,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAC,eAAe,EAAE,aAAa,EAAC,MAAM,wBAAwB,CAAA;AACrE,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAC,yBAAyB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,qBAAqB,EAAC,MAAM,0BAA0B,CAAA;AACrO,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAC,0BAA0B,EAAC,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.js"],"names":[],"mappings":"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"}
|
|
@@ -12,4 +12,16 @@ export function commandContext(options: import("#types").CommandOptions, stageNa
|
|
|
12
12
|
stage: import("#types").StageConfig;
|
|
13
13
|
transport: import("#types").Transport;
|
|
14
14
|
}>;
|
|
15
|
+
/**
|
|
16
|
+
* Load and validate configuration without constructing an operational transport.
|
|
17
|
+
*
|
|
18
|
+
* @param {import('#types').CommandOptions} options
|
|
19
|
+
* @param {string} stageName
|
|
20
|
+
* @returns {Promise<{config: object, configPath: string, stage: import('#types').StageConfig}>}
|
|
21
|
+
*/
|
|
22
|
+
export function structuralCommandContext(options: import("#types").CommandOptions, stageName: string): Promise<{
|
|
23
|
+
config: object;
|
|
24
|
+
configPath: string;
|
|
25
|
+
stage: import("#types").StageConfig;
|
|
26
|
+
}>;
|
|
15
27
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/commands/context.js"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,wCALW,OAAO,QAAQ,EAAE,cAAc,aAC/B,MAAM,iBACN;IAAC,QAAQ,CAAC,EAAE,OAAO,qBAAqB,EAAE,QAAQ,CAAA;CAAC,GACjD,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,QAAQ,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,OAAO,QAAQ,EAAE,SAAS,CAAA;CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/commands/context.js"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,wCALW,OAAO,QAAQ,EAAE,cAAc,aAC/B,MAAM,iBACN;IAAC,QAAQ,CAAC,EAAE,OAAO,qBAAqB,EAAE,QAAQ,CAAA;CAAC,GACjD,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,QAAQ,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,OAAO,QAAQ,EAAE,SAAS,CAAA;CAAC,CAAC,CAMrI;AAED;;;;;;GAMG;AACH,kDAJW,OAAO,QAAQ,EAAE,cAAc,aAC/B,MAAM,GACJ,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,QAAQ,EAAE,WAAW,CAAA;CAAC,CAAC,CAM9F"}
|
|
@@ -10,9 +10,20 @@ import { SshTransport } from "../transports/ssh-transport.js";
|
|
|
10
10
|
* @returns {Promise<{config: object, configPath: string, stage: import('#types').StageConfig, transport: import('#types').Transport}>}
|
|
11
11
|
*/
|
|
12
12
|
export async function commandContext(options, stageName, { reporter } = {}) {
|
|
13
|
-
const { config, configPath } = await
|
|
14
|
-
const stage = validateConfig(/** @type {Record<string, unknown>} */ (config), stageName);
|
|
13
|
+
const { config, configPath, stage } = await structuralCommandContext(options, stageName);
|
|
15
14
|
const transport = stage.transport.type === "ssh" ? SshTransport.fromStage(stage, reporter) : new LocalTransport({ reporter });
|
|
16
15
|
return { config, configPath, stage, transport };
|
|
17
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Load and validate configuration without constructing an operational transport.
|
|
19
|
+
*
|
|
20
|
+
* @param {import('#types').CommandOptions} options
|
|
21
|
+
* @param {string} stageName
|
|
22
|
+
* @returns {Promise<{config: object, configPath: string, stage: import('#types').StageConfig}>}
|
|
23
|
+
*/
|
|
24
|
+
export async function structuralCommandContext(options, stageName) {
|
|
25
|
+
const { config, configPath } = await loadConfig(options.config, stageName);
|
|
26
|
+
const stage = validateConfig(/** @type {Record<string, unknown>} */ (config), stageName);
|
|
27
|
+
return { config, configPath, stage };
|
|
28
|
+
}
|
|
18
29
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/commands/context.js"],"names":[],"mappings":"AAAA,YAAY;AACZ,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAC,cAAc,EAAC,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAA;AAE3D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,EAAC,QAAQ,EAAC,GAAG,EAAE;IACtE,MAAM,EAAC,MAAM,EAAE,UAAU,EAAC,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/commands/context.js"],"names":[],"mappings":"AAAA,YAAY;AACZ,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAC,cAAc,EAAC,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAA;AAE3D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,EAAC,QAAQ,EAAC,GAAG,EAAE;IACtE,MAAM,EAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAC,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACtF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAA;IAC3H,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAC,CAAA;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,OAAO,EAAE,SAAS;IAC/D,MAAM,EAAC,MAAM,EAAE,UAAU,EAAC,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACxE,MAAM,KAAK,GAAG,cAAc,CAAC,sCAAsC,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAA;IACxF,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAC,CAAA;AACpC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { structuralCommandContext as defaultCommandContext } from "./context.js";
|
|
2
2
|
import { createDeployPlanDetails } from "../core/deploy-runner.js";
|
|
3
3
|
/**
|
|
4
4
|
* @param {import('#types').CommandArgs} args
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/commands/plan.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/commands/plan.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,IAAI,qBAAqB,EAAC,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAC,uBAAuB,EAAC,MAAM,0BAA0B,CAAA;AAEhE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAC,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,qBAAqB,EAAC;IAC5F,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAA;IACrF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,aAAa,CAAA;IACpD,MAAM,KAAK,GAAG,uBAAuB,CAAC,KAAK,EAAE,EAAC,QAAQ,EAAE,SAAS,EAAC,CAAC,CAAA;IACnE,MAAM,OAAO,GAAG,EAAC,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAC,CAAA;IAEpG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC7C,OAAM;IACR,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;IAC/D,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAA;IACpC,OAAO,CAAC,GAAG,CAAC,YAAY,SAAS,EAAE,CAAC,CAAA;IACpC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
package/docs/config-reference.md
CHANGED
|
@@ -132,6 +132,22 @@ executed:
|
|
|
132
132
|
Dry runs (`--dry-run`) always print a direct-transport plan and never contact
|
|
133
133
|
the control plane.
|
|
134
134
|
|
|
135
|
+
### Structural deploy plans
|
|
136
|
+
|
|
137
|
+
`rampway <stage> plan [revision]` renders the deploy structure after loading
|
|
138
|
+
and validating configuration. With no positional revision, selection remains
|
|
139
|
+
`--revision`, then `--branch`, then `stage.revision`, then `stage.branch`. A
|
|
140
|
+
positional revision takes precedence over all four sources and must contain 7
|
|
141
|
+
to 64 hexadecimal characters. The selected value appears in both human and
|
|
142
|
+
JSON output.
|
|
143
|
+
|
|
144
|
+
Planning is structural only: it does not prove that a SHA exists, check branch
|
|
145
|
+
or remote-git reachability, or obtain HTTP control-plane approval. It performs
|
|
146
|
+
no SSH, Git fetch/clone, local-copy, temporary checkout, control-plane request,
|
|
147
|
+
deploy lock, release-directory, runtime, filesystem deployment, or transport
|
|
148
|
+
operation. `local-copy` and `remote-git` steps are descriptions of what a later
|
|
149
|
+
deploy would do, not actions or admission checks.
|
|
150
|
+
|
|
135
151
|
## Linked files and directories
|
|
136
152
|
|
|
137
153
|
Linked files and directories are symlinked from `shared/` into every release before tasks run.
|
|
@@ -147,6 +147,12 @@ being polled. `--transport=ssh` bypasses the control plane entirely;
|
|
|
147
147
|
`--transport=http` requires `stage.http` and fails if it is missing. Dry runs
|
|
148
148
|
always print a direct-transport plan.
|
|
149
149
|
|
|
150
|
+
The separate `rampway <stage> plan [revision]` command is purely structural.
|
|
151
|
+
Even for a stage configured with `http`, it never contacts this control plane
|
|
152
|
+
and does not resolve a branch, prove that a supplied SHA exists or is reachable
|
|
153
|
+
from the approved branch, or request deployment admission. Those full-SHA and
|
|
154
|
+
reachability checks remain part of an actual HTTP deployment.
|
|
155
|
+
|
|
150
156
|
The client posts the stage's project/application name, an immutable full commit
|
|
151
157
|
SHA (resolving `stage.branch` with `git ls-remote` against `stage.repo` when no
|
|
152
158
|
revision is pinned), and an idempotency key derived from the project, stage,
|