Build on the supported package contract
Use @absolutejs/vulnerabilities-witness through its supported public entry points.
@absolutejs/vulnerabilities-witnessv0.7.4betaPlatform & 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.
Search the declarations exported by the current package type files. Expand a symbol to inspect its source-backed signature.
const createEvidenceWitnessHttpHandler: (options: {
authenticate: (token: string) => Promise<string | null>;
service: ReturnType<typeof createEvidenceWitnessService>;
}) => (request: Request) => Promise<Response>;@absolutejs/vulnerabilities-witness