Skip to content

Commit d8e866c

Browse files
chore(Go): update docs and daily CI (#1923)
1 parent 61b27e5 commit d8e866c

File tree

4 files changed

+112
-0
lines changed

4 files changed

+112
-0
lines changed

.github/workflows/daily_ci.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ jobs:
6161
uses: ./.github/workflows/library_rust_tests.yml
6262
with:
6363
dafny: ${{needs.getVersion.outputs.version}}
64+
daily-ci-go:
65+
needs: getVersion
66+
uses: ./.github/workflows/ci_test_go.yml
67+
with:
68+
dafny: ${{needs.getVersion.outputs.version}}
6469
daily-ci-net-test-vectors:
6570
needs: getVersion
6671
uses: ./.github/workflows/ci_test_vector_net.yml

DynamoDbEncryption/Makefile

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,21 @@ STRUCTUREDENCRYPTION_INDEX_FILE_PATH=dafny/StructuredEncryption/src/Index.dfy
164164
STRUCTUREDENCRYPTION_INDEX_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.structuredencryption.internaldafny\" } StructuredEncryption"
165165
STRUCTUREDENCRYPTION_INDEX_FILE_WITHOUT_EXTERN_STRING="module StructuredEncryption"
166166

167+
# Target to restore all directories in a list
168+
# TODO: Remove this once we don't copy all of the directories into implementation and test https://sim.amazon.com/issues/CrypTool-5447
169+
RESTORE_DIRS := README.md
170+
_polymorph_go: restore_directories
171+
restore_directories:
172+
@for dir in $(RESTORE_DIRS); do \
173+
if [ -d "runtimes/go/ImplementationFromDafny-go/$$dir" ]; then \
174+
cp -Rf runtimes/go/ImplementationFromDafny-go/$$dir runtimes/go/; \
175+
rm -rf runtimes/go/ImplementationFromDafny-go/$$dir; \
176+
rm -rf runtimes/go/TestsFromDafny-go/$$dir; \
177+
else \
178+
echo "Directory $$dir not found"; \
179+
fi \
180+
done
181+
167182
_sed_types_file_remove_extern:
168183
$(MAKE) _sed_file SED_FILE_PATH=$(DYNAMODB_TYPES_FILE_PATH) SED_BEFORE_STRING=$(DYNAMODB_TYPES_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(DYNAMODB_TYPES_FILE_WITHOUT_EXTERN_STRING)
169184
$(MAKE) _sed_file SED_FILE_PATH=$(ITEMENCRYPTOR_TYPES_FILE_PATH) SED_BEFORE_STRING=$(ITEMENCRYPTOR_TYPES_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(ITEMENCRYPTOR_TYPES_FILE_WITHOUT_EXTERN_STRING)

DynamoDbEncryption/README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@ Within `runtimes/java`:
4040
- `src/` contains all hand written Dotnet code, including externs, and also all Smithy to Rust generated code.
4141
- `src/implementation_from_dafny.cs` contains all Dafny to .NET transpiled code.
4242

43+
#### Go
44+
45+
`runtimes/go` contains the Go related code and build instructions for this project.
46+
47+
- `ImplementationFromDafny-go/` contains all the implementation code which is Smithy to Go generated code, Dafny to Go transpiled code and hand written Go code
48+
- `TestsFromDafny-go` contains all the test code which is Smithy to Go generated code, Dafny to Go transpiled code and hand written Go code.
49+
4350
### Development
4451

4552
Common Makefile targets are:
@@ -83,6 +90,8 @@ Common Makefile targets are:
8390
- `make test_net_mac_intel` builds and tests the transpiled code in .NET in an Intel-MacOS environment.
8491
- `make transpile_rust` transpiles all of the Dafny code into runtimes/rust/src/implementation_from_dafny.
8592
- `make polymorph_rust` transpiles the smithy files into untimes/rust/src/\*.rs
93+
- `make transpile_go` transpiles all of the Dafny code into runtimes/go/\*.go
94+
- `make polymorph_go` transpiles the smithy files into runtimes/go/\*.go
8695

8796
### Development Requirements
8897

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# AWS Database Encryption SDK for DynamoDB in Go
2+
3+
The AWS Database Encryption SDK (DB-ESDK) for DynamoDB in Go is a client-side encryption
4+
library that allows you to perform attribute-level encryption, enabling you to encrypt specific
5+
attribute values within items before storing them in your DynamoDB table. All encryption and
6+
decryption are performed within your application. This lets you protect sensitive data in-transit
7+
and at-rest, as data cannot be exposed unless decrypted by your application.
8+
9+
For more details about the design and architecture of the DB-ESDK for DynamoDB,
10+
see the [AWS Database Encryption SDK Developer Guide](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/).
11+
12+
# Security
13+
14+
If you discover a potential security issue in this project
15+
we ask that you notify AWS/Amazon Security via our
16+
[vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/).
17+
Please **do not** create a public GitHub issue.
18+
19+
# Support Policy
20+
21+
See [Support Policy](./SUPPORT_POLICY.rst) for details
22+
on the current support status of all major versions of this library.
23+
24+
## Giving Feedback
25+
26+
We need your help in making this SDK great.
27+
Please participate in the community and contribute to this effort by
28+
submitting issues,
29+
participating in discussion forums and
30+
submitting pull requests through the following channels:
31+
32+
- Submit [issues](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues)
33+
\- this is the **preferred** channel to interact with our team
34+
- Articulate your
35+
[feature request](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues?q=is%3Aopen+is%3Aissue+label%3A%22feature-request%22)
36+
or upvote existing ones
37+
- Ask [questions](https://repost.aws/tags/TAc3VKZnkNQyimpHnCHetNOQ/aws-crypto-tools) on AWS re:Post under AWS Crypto Tools tag
38+
39+
# Getting Started
40+
41+
## Required Prerequisites
42+
43+
To use the DB-ESDK for DynamoDB in Go, you must have:
44+
45+
### A supported version of Go
46+
47+
- Go 1.23 or later is required by AWS Encryption SDK for Go.
48+
49+
For more information on downloading and installing Go, see [Go installation](https://go.dev/doc/install)
50+
51+
### AWS Integration
52+
53+
You need an Amazon Web Services (AWS) account to use the DB-ESDK for DynamoDB as it's specifically designed to work with Amazon DynamoDB. Optionally, you can use AWS Key Management Service (AWS KMS) as your main keyring provider.
54+
55+
- **To create an AWS account**, go to
56+
[Sign In or Create an AWS Account](https://portal.aws.amazon.com/gp/aws/developer/registration/index.html)
57+
and then choose **I am a new user.**
58+
Follow the instructions to create an AWS account.
59+
60+
- **(Optional) To create a key in AWS KMS**, see
61+
[Creating Keys](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html).
62+
63+
### Amazon Corretto Crypto Provider
64+
65+
Many developers find that the Amazon Corretto Crypto Provider (ACCP)
66+
significantly improves the performance of the library.
67+
For help installing and using ACCP, see the
68+
[amazon-corretto-crypto-provider repository](https://github.com/corretto/amazon-corretto-crypto-provider).
69+
70+
## Using the DB-ESDK for DynamoDB in Java
71+
72+
There are several ways to use the library.
73+
More details are provided in the
74+
[AWS Database Encryption SDK Developer Guide](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/).
75+
Also see the [Examples](Examples/runtimes/go/).
76+
77+
# Contributing
78+
79+
See [CONTRIBUTING](CONTRIBUTING.md) for more information.
80+
81+
# License
82+
83+
This project is licensed under the Apache-2.0 License.

0 commit comments

Comments
 (0)