Skip to content

Repository files navigation

workflow-plugin-encrypted-spaces

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.

Installation

wfctl plugin install workflow-plugin-encrypted-spaces

Development

# Build
make build

# Test
make test

# Install locally
make install-local

Capability Surface

The 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.

Module Types

  • encrypted_space.store
  • encrypted_space.verifier
  • encrypted_space.proof_policy
  • encrypted_space.state_store

Step Types

  • step.encrypted_space_append
  • step.encrypted_space_fast_forward
  • step.encrypted_space_epoch_rotate
  • step.encrypted_space_member_update
  • step.encrypted_space_state_init
  • step.encrypted_space_state_load
  • step.encrypted_space_state_save
  • step.encrypted_space_state_update
  • step.encrypted_space_member_check
  • step.encrypted_space_membership_issue
  • step.encrypted_space_membership_present
  • step.encrypted_space_private_membership_verify
  • step.encrypted_space_verify_membership
  • step.encrypted_space_verify_operation
  • step.encrypted_space_verify_checkpoint
  • step.encrypted_space_vector_report
  • step.encrypted_space_append_verified
  • step.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

  • scenarios/encrypted-space-proof-workflow: local proof-gated append flow that composes this plugin with released workflow-plugin-rooms, workflow-plugin-eventbus, and workflow-plugin-audit pins.
  • 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.

Module

Go module: github.com/GoCodeAlone/workflow-plugin-encrypted-spaces

About

Workflow plugin for Encrypted Spaces collaboration primitives

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages