dsh-change-window-proof
Offline content-addressed DSH proof for change-window settlement evidence
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 26, 2026
- Updated
- Aug 26, 2026
Introduction
dsh-change-window-proof
Offline, deterministic evidence for one narrow question: does the supplied hash-linked change ledger settle inside one declared UTC maintenance window while staying bound to one change receipt, artifact, environment, policy and plan?
It provides the same headless core through a DSH bundle, standalone MCP stdio server, JavaScript API and CLI. Reports are content-addressed, redacted and verified after writing.
Why this is separate
AWS models a maintenance window with a schedule, maximum duration, targets and tasks, and defines a cutoff after which new tasks may not start. Azure likewise separates start time, duration, recurrence and disallowed dates. This plugin verifies a supplied settlement against those fixed-window ideas; it is not a scheduler.
It complements rather than duplicates the 2Origin evidence stack:
dsh-action-parityproves interface bindings share one action core.dsh-policy-waiver-proofverifies an explicit exception chain.dsh-artifact-promotion-proofverifies immutable digest promotion across stages.dsh-change-window-proofverifies one supplied action ledger stayed within one declared time boundary and cutoff.
It does not approve, grant a waiver, schedule or execute a change; authenticate the recorder or receipts; query live infrastructure; or prove that no unrecorded action occurred.
Checks
- one declared window exists and contains the exact settlement start/finish;
- contiguous
start → step* → finishsequence and monotonically ordered UTC timestamps; - maximum duration and no-new-step cutoff;
- every event binds the same window, change receipt, artifact and environment;
- event SHA-256 chain and declared ledger head;
- observer diversity and evidence freshness;
- secret-shaped values and raw business/log fields are rejected;
- workspace-relative, non-symlink input and output paths; exclusive content-addressed write with read-back.
Use
npm test
npm run check
node bin/dsh-change-window-proof.mjs inspect examples/compliant.json
node bin/dsh-change-window-proof.mjs verify examples/compliant.json
Install as a DSH bundle from a path or a fixed public commit:
dsh plugin install /absolute/path/to/dsh-change-window-proof
dsh plugin install github:dongsheng123132/dsh-change-window-proof#<commit>
DSH tools:
dsh_change_window_inspectaccepts inlinemanifestJsonand returns bounded hashes/counts.dsh_change_window_verifyaccepts workspace-relativemanifestPathandartifactDir, then writes and re-reads a content-addressed JSON verdict.
MCP tools are change_window_inspect and change_window_verify; launch with node mcp-server.mjs using newline-delimited JSON-RPC.
Manifest
See examples/compliant.json. Only identifiers, timestamps, counts and SHA-256 bindings belong in the manifest. Do not place credentials, raw logs, prompts, bodies, chat text or source documents in it.
References: AWS Systems Manager Maintenance Windows, AWS scheduling and active-period options, Azure AKS maintenance window schema.
MIT licensed. See SECURITY.md for the trust boundary.