Build on the supported package contract
Use @absolutejs/vulnerabilities-witness through its supported public entry points.
@absolutejs/vulnerabilities-witnessv0.7.10betaPlatform & InfraIndependent durable transparency witness with rollback, equivocation, key-rotation, and HTTP service primitives for AbsoluteJS vulnerability evidence.
bun add @absolutejs/vulnerabilities-witnessThe witness consumes @absolutejs/secrets@^0.9.2, whose Agency integration is host-owned and externalized. It never embeds a second Secrets or Agency runtime.
Independent transparency witnessing for AbsoluteJS vulnerability evidence. The package verifies the complete signed evidence-key transparency log before issuing an Ed25519 checkpoint receipt. Durable stores reject a lower log size as rollback and reject two different heads observed for the same authenticated subject and log size as equivocation.
The HTTP service has three routes:
POST /v1/checkpoints authenticates a bearer token, verifies the submitted
transparency log, and returns { checkpoint, registry }.
GET /v1/keys publishes the witness key registry and cross-signed rotation
chain.
GET /health returns service liveness.
The signing identity contains a private key and belongs in a durable secret broker, not PostgreSQL or source control. service.rotate() stores the new secret state before activating it and publishes the cross-signed transition in the registry. service.maintain() performs the same rotation only after the configured maximum key age. In a multi-replica service, the supplied secret-store integration must serialize rotations.
The included absolute-vulnerability-witness executable uses PostgreSQL for observations and accepts these deployment secrets:
DATABASE_URL
EVIDENCE_WITNESS_ORIGIN
EVIDENCE_WITNESS_SIGNING_STATE_JSON
EVIDENCE_WITNESS_TOKENS_JSON, an object mapping stable subjects to bearer
tokens
EVIDENCE_WITNESS_SECRETS_PATH, the durable encrypted secret file
EVIDENCE_WITNESS_SECRETS_PASSPHRASE, the master passphrase kept outside the
file
EVIDENCE_WITNESS_KEY_MAX_AGE_MS, defaulting to 90 days
EVIDENCE_WITNESS_MAINTENANCE_INTERVAL_MS, defaulting to one hour
EVIDENCE_WITNESS_TLS_CERT_FILE and EVIDENCE_WITNESS_TLS_KEY_FILE, an
optional pair enabling native TLS for deployments without a terminating proxy
Outcomes
Use @absolutejs/vulnerabilities-witness through its supported public entry points.
Hardening checklist
Follow in order
# @absolutejs/vulnerabilities-witness
import {
EVIDENCE_WITNESS_REQUEST_CONTRACT,
createEvidenceWitnessHttpHandler,
createEvidenceWitnessService,
createEvidenceWitnessSigningState,
} from "@absolutejs/vulnerabilities-witness";
import {
createPostgresEvidenceWitnessStore,
ensurePostgresEvidenceWitnessSchema,
} from "@absolutejs/vulnerabilities-witness/postgres";
const signingState = createEvidenceWitnessSigningState();
await ensurePostgresEvidenceWitnessSchema(sql);
const service = createEvidenceWitnessService({
loadSigningState,
origin: "https://witness.example",
signingState,
store: createPostgresEvidenceWitnessStore(sql),
storeSigningState,
});
const fetch = createEvidenceWitnessHttpHandler({
authenticate: async (token) => subjectsByToken.get(token) ?? null,
service,
});
Bun.serve({ fetch, port: 3000 });Supported entry points declared by this package manifest.
Package entry point declared in package.json.
Scripts declared by this package manifest.