Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
VERSION ?= 0.23.0
VERSION ?= 0.29.0

.PHONY: build test pipeline-test install-local generate-contracts clean

Expand Down
13 changes: 11 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ make install-local
- `step.signal_sender_unseal` - unseal sender-sealed bytes, validate the sender certificate, and restore the Signal session envelope after the configured principal gate passes.
- `step.signal_outbox_enqueue` - queue a ciphertext envelope with sender, recipient, custody, authorization, and message refs.
- `step.signal_outbox_claim` - claim a queued outbox envelope for host transport without exposing plaintext.
- `step.signal_outbox_release` - return a claimed outbox envelope to the queue for retry with ref-only failure metadata.
- `step.signal_outbox_ack` - mark a claimed outbox envelope delivered after the host transport admits it downstream.
- `step.signal_inbox_receive` - admit a ciphertext envelope into an inbox queue for a recipient ref.
- `step.signal_inbox_decrypt` - decrypt an inbox envelope only when the caller supplies custody and authorization refs.
- `step.signal_blob_encrypt` - encrypt blob bytes with a random content key and Signal-encrypt the blob manifest/key material to a recipient.
Expand Down Expand Up @@ -224,8 +226,15 @@ not Signal group sender-key crypto and does not create a shared group ratchet.
ciphertext plus redacted routing metadata. The memory backend is intended for
application composition and conformance tests. The `local_file` backend must be
explicitly enabled, is rejected under production policy mode, and persists only
ciphertext envelopes and refs. Inbox decrypt requires both custody and
authorization refs before it delegates to the local Signal decrypt primitive.
ciphertext envelopes and refs. The `sqlite` backend is also explicit opt-in via
`allow_sqlite_backend: true`, requires `storage_path`, stores the same
ciphertext-only queue snapshot in a local SQLite database, and is rejected under
production policy mode until a managed database adapter has its own credential,
migration, and scenario proof. Outbox workers claim an envelope, then either
release it for retry with `last_error_ref` metadata or ack it after downstream
admission; acked envelopes are terminal and cannot be reclaimed. Inbox decrypt
requires both custody and authorization refs before it delegates to the local
Signal decrypt primitive.

`step.signal_blob_encrypt` and `step.signal_blob_decrypt` provide a local
hybrid attachment pattern for Workflow apps. Blob bytes are encrypted with
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ require (
github.com/GoCodeAlone/libsignal-service-go v0.7.0
github.com/GoCodeAlone/workflow v0.83.1
google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af
modernc.org/sqlite v1.51.0
)

require (
Expand Down Expand Up @@ -46,5 +47,4 @@ require (
modernc.org/libc v1.72.3 // indirect
modernc.org/mathutil v1.7.1 // indirect
modernc.org/memory v1.11.0 // indirect
modernc.org/sqlite v1.51.0 // indirect
)
4 changes: 0 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,8 @@ github.com/DataDog/datadog-go/v5 v5.8.3 h1:s58CUJ9s8lezjhTNJO/SxkPBv2qZjS3ktpRSq
github.com/DataDog/datadog-go/v5 v5.8.3/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
github.com/GoCodeAlone/go-plugin v1.7.0 h1:EwnhqPlXiNmp85S+MXnKKvm3YlfA6O4NzBb4+GSlEVY=
github.com/GoCodeAlone/go-plugin v1.7.0/go.mod h1:HbGQRZUIa+jbDfjsaZIMJYvrz+LnxL0mJpggfynSTMk=
github.com/GoCodeAlone/libsignal-go v0.3.0 h1:M3rlffZayWhYO4UA7YqeGovAS4gFSZQCXtzkIrp41m0=
github.com/GoCodeAlone/libsignal-go v0.3.0/go.mod h1:S18Sbjg7yf8WAFmrvRZjnZe6msXtioGx91NCRusiLSI=
github.com/GoCodeAlone/libsignal-go v0.7.0 h1:8IbYJPF7DV9hyJDzSkpDo07l/7oyw0pdknvBQbtia6o=
github.com/GoCodeAlone/libsignal-go v0.7.0/go.mod h1:/MnX0eKx6JQdtMIB9rRz22yWYZ7iE5tt2on6dt9wtao=
github.com/GoCodeAlone/libsignal-service-go v0.6.0 h1:540LaUTpPN2fKx3sEXfNZh6p7yBl4lETnZl1cebidq0=
github.com/GoCodeAlone/libsignal-service-go v0.6.0/go.mod h1:a8uhvD/yQBWqsZbzjJkv+/y/Cs1TqsaUzyfQVbP/LmE=
github.com/GoCodeAlone/libsignal-service-go v0.7.0 h1:rmvCjl5zrNsCOSpNc4ezFqfJ/+OZjUgKzA2F2FOrhi4=
github.com/GoCodeAlone/libsignal-service-go v0.7.0/go.mod h1:a8uhvD/yQBWqsZbzjJkv+/y/Cs1TqsaUzyfQVbP/LmE=
github.com/GoCodeAlone/modular v1.13.4 h1:De4p2qyJSVmstRGno/PM+fPdUCMu/7a9WgU5FUVGDa8=
Expand Down
Loading