Skip to content
Open
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: 2 additions & 0 deletions docs/sdk-design-principles.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ The second part applies to the Go SDK.
- **Declaration:** the statement of how each field is encrypted: its context, and its indexes.
The engine calls a saved declaration a plan.

How to build the binding itself, what crosses it and how to prove it, is the guide in `packages/stack-encrypt/docs/language-integration.md` (`stack_encrypt::dynamic::guide` in the crate documentation).

## When two principles disagree

Apply them in this order:
Expand Down
4 changes: 4 additions & 0 deletions languages/golang/encrypt/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -588,6 +588,10 @@ credential guest) before `go test`, and
round-trip and fixture tests use. Without the builds `NewClient` returns
`ErrGuestNotBuilt` and the tests skip.

This package is the reference integration for the engine. How the binding
works, what crosses it and how to build one for another language is the
guide in `packages/stack-encrypt/docs/language-integration.md`.

## Licence

The Go code in this module is MIT-licensed ([`LICENSE`](../LICENSE)). The
Expand Down
11 changes: 11 additions & 0 deletions packages/stack-encrypt/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Added

- **A guide to building a language integration**, `dynamic::guide`
(`docs/language-integration.md`, shipped in the crate docs under the
`dynamic` feature): the binding versus the language SDK, native versus
WebAssembly, the three operations and the Go guest's exports, the plan
grammar, control messages versus plaintext, the plaintext hygiene rules
and the tests that prove them, the step loop and the token import,
the status table and `se_last_error`, versioning, one `int32` stored as
EQL v4 `IntegerEq` traced through encrypt, query and decrypt with the
bytes from the committed fixtures, and a checklist for a new binding.
The frame format stays in `vitaminc-aead-frame`'s documentation and is
linked, not restated.
- **Every integer width, 128-bit integers, dates, timestamps and decimals
as dynamic values** (`dynamic` feature; #1144, ADR-0002). They are
vitaminc leaves in a `ValueFrame`, with no new `FfiValue` variant:
Expand Down
Loading
Loading