Workflow plugin for Encrypted Spaces collaboration primitives.
This plugin exposes Workflow module contracts for encrypted-space operation storage, proof-verifier configuration, operation-log steps, epoch/member updates, and production-mode proof verification reports. It does not provide live Signal service egress.
wfctl plugin install workflow-plugin-encrypted-spaces# Build
make build
# Test
make test
# Install locally
make install-localThe current release exposes operation-log, epoch/member, space-state lifecycle,
memory and explicit file-backed state custody, opaque private membership
credentials, proof-report, proof-policy, verified-append, and redacted
proof-evidence primitives backed by encrypted-spaces-go. It also includes a
rooms/eventbus/audit composition scenario for private collaboration apps.
Fake/no-proof modes are for application composition tests and conformance
harnesses only. Production deployments should require proof reports whose
ProductionReady field is true.
encrypted_space.storeencrypted_space.verifierencrypted_space.proof_policyencrypted_space.state_store
step.encrypted_space_appendstep.encrypted_space_fast_forwardstep.encrypted_space_epoch_rotatestep.encrypted_space_member_updatestep.encrypted_space_state_initstep.encrypted_space_state_loadstep.encrypted_space_state_savestep.encrypted_space_state_updatestep.encrypted_space_member_checkstep.encrypted_space_membership_issuestep.encrypted_space_membership_presentstep.encrypted_space_private_membership_verifystep.encrypted_space_verify_membershipstep.encrypted_space_verify_operationstep.encrypted_space_verify_checkpointstep.encrypted_space_vector_reportstep.encrypted_space_append_verifiedstep.encrypted_space_proof_evidence
step.encrypted_space_vector_report returns per-domain coverage rows with
vector-backed, deterministic-only, or deferred status values. When
require_production_equivalence is true, the step fails if any required domain
is not vector-backed.
step.encrypted_space_append_verified verifies operation commitments,
membership reports, and checkpoint reports before accepting an append. The
encrypted_space.proof_policy module can require vector-backed proof evidence
and keeps message-backup and SVR/SVRB proof domains explicitly deferred until
upstream vectors are available.
step.encrypted_space_proof_evidence emits redacted proof evidence and an audit
event payload shaped for workflow-plugin-audit; plaintext and key material are
not copied into evidence output.
step.encrypted_space_state_init, step.encrypted_space_state_update, and
step.encrypted_space_member_check expose SpaceState snapshots for Workflow
applications that need to enroll, revoke, and check members before append/proof
flows. encrypted_space.state_store with
step.encrypted_space_state_load/step.encrypted_space_state_save provides
named snapshot custody for application composition and scenario proofs. The
default memory backend is ephemeral. The explicit file backend writes a
schema-versioned and checksummed state snapshot through a temp-file plus rename
sequence, rejects corrupt or unsupported snapshots on start, and stores only
space IDs, epochs, members, and removed members. It does not store plaintext,
proof secrets, private keys, ciphertext bodies, or operation-log payloads.
Production policy mode rejects the local file backend; production hosts
should bind this contract to their managed storage boundary.
step.encrypted_space_membership_issue,
step.encrypted_space_membership_present, and
step.encrypted_space_private_membership_verify expose local opaque membership
credentials for Workflow admission/revocation proofs. They hide plaintext member
IDs from credential and presentation outputs, bind a presentation to an
audience and operation, and support epoch/expiry/revocation checks. This is not
a full official Signal zkgroup zero-knowledge implementation; the verification
report keeps official_zk_equivalent false.
scenarios/encrypted-space-proof-workflow: local proof-gated append flow that composes this plugin with releasedworkflow-plugin-rooms,workflow-plugin-eventbus, andworkflow-plugin-auditpins.testdata/pipelines/encrypted-space-file-state.yaml: local file-state workflow fixture that initializes a caller-supplied space, saves state, reloads it, and rejects a removed member.tests/pipeline/encrypted_space_private_membership_test.yaml: local issue/present/verify flow for opaque private membership credentials.
Go module: github.com/GoCodeAlone/workflow-plugin-encrypted-spaces