Skip to content

Commit 4a3b204

Browse files
Merge branch 'main' of https://github.com/aws/aws-database-encryption-sdk-dynamodb into TestExecuteStatement
2 parents 1258a3b + e2d76c3 commit 4a3b204

File tree

36 files changed

+145068
-51
lines changed

36 files changed

+145068
-51
lines changed

.github/workflows/ci_test_go.yml

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
# This workflow performs tests in Go.
2+
name: Library Go tests
3+
4+
on:
5+
workflow_call:
6+
inputs:
7+
dafny:
8+
description: "The Dafny version to run"
9+
required: true
10+
type: string
11+
regenerate-code:
12+
description: "Regenerate code using smithy-dafny"
13+
required: false
14+
default: false
15+
type: boolean
16+
mpl-version:
17+
description: "MPL version to use"
18+
required: false
19+
type: string
20+
mpl-head:
21+
description: "Running on MPL HEAD"
22+
required: false
23+
default: false
24+
type: boolean
25+
26+
jobs:
27+
testGo:
28+
strategy:
29+
matrix:
30+
library: [DynamoDbEncryption, TestVectors]
31+
os: [ubuntu-22.04, macos-13]
32+
go-version: ["1.23"]
33+
runs-on: ${{ matrix.os }}
34+
permissions:
35+
id-token: write
36+
contents: read
37+
steps:
38+
- name: Setup Docker
39+
if: matrix.os == 'macos-13' && matrix.library == 'TestVectors'
40+
uses: douglascamata/setup-docker-macos-action@v1-alpha
41+
42+
- name: Setup DynamoDB Local
43+
if: matrix.library == 'TestVectors'
44+
uses: rrainn/[email protected]
45+
with:
46+
port: 8000
47+
cors: "*"
48+
49+
- name: Support longpaths
50+
run: |
51+
git config --global core.longpaths true
52+
53+
- name: Configure AWS Credentials
54+
uses: aws-actions/configure-aws-credentials@v4
55+
with:
56+
aws-region: us-west-2
57+
role-to-assume: arn:aws:iam::370957321024:role/GitHub-CI-DDBEC-Dafny-Role-us-west-2
58+
role-session-name: DDBEC-Dafny-Java-Tests
59+
60+
- uses: actions/checkout@v3
61+
with:
62+
submodules: recursive
63+
64+
- name: Setup Dafny
65+
uses: dafny-lang/[email protected]
66+
with:
67+
dafny-version: ${{ inputs.dafny }}
68+
69+
- name: Create temporary global.json
70+
run: echo '{"sdk":{"rollForward":"latestFeature","version":"6.0.0"}}' > ./global.json
71+
72+
- name: Setup Java 17 for codegen
73+
uses: actions/setup-java@v3
74+
with:
75+
distribution: "corretto"
76+
java-version: "17"
77+
78+
- name: Update MPL submodule if using MPL HEAD
79+
if: ${{ inputs.mpl-head == true }}
80+
working-directory: submodules/MaterialProviders
81+
run: |
82+
git checkout main
83+
git pull
84+
git submodule update --init --recursive
85+
git rev-parse HEAD
86+
87+
- name: Update project.properties if using MPL HEAD
88+
if: ${{ inputs.mpl-head == true }}
89+
run: |
90+
sed "s/mplDependencyJavaVersion=.*/mplDependencyJavaVersion=${{inputs.mpl-version}}/g" project.properties > project.properties2; mv project.properties2 project.properties
91+
92+
- name: Install Go
93+
uses: actions/setup-go@v5
94+
with:
95+
go-version: ${{ matrix.go-version }}
96+
97+
- name: Install Go imports
98+
run: |
99+
go install golang.org/x/tools/cmd/goimports@latest
100+
101+
- uses: actions/checkout@v3
102+
- name: Init Submodules
103+
shell: bash
104+
run: |
105+
git submodule update --init --recursive submodules/smithy-dafny
106+
git submodule update --init --recursive submodules/MaterialProviders
107+
108+
- name: Install Smithy-Dafny codegen dependencies
109+
uses: ./.github/actions/install_smithy_dafny_codegen_dependencies
110+
111+
- name: Build ${{ matrix.library }} implementation
112+
shell: bash
113+
working-directory: ./${{ matrix.library }}
114+
run: |
115+
# This works because `node` is installed by default on GHA runners
116+
CORES=$(node -e 'console.log(os.cpus().length)')
117+
make transpile_go CORES=$CORES
118+
119+
- name: Regenerate code using smithy-dafny
120+
shell: bash
121+
working-directory: ./${{ matrix.library }}
122+
run: |
123+
make polymorph_go
124+
125+
- name: Copy ${{ matrix.library }} Vector Files
126+
if: ${{ matrix.library == 'TestVectors' }}
127+
shell: bash
128+
working-directory: ./${{ matrix.library }}
129+
run: |
130+
cp runtimes/java/*.json runtimes/go/TestsFromDafny-go/
131+
132+
- name: Test ${{ matrix.library }}
133+
working-directory: ./${{ matrix.library }}
134+
run: |
135+
make test_go
136+
137+
- name: Test Examples
138+
if: matrix.library == 'DynamoDbEncryption'
139+
working-directory: ./Examples/runtimes/go
140+
run: |
141+
go run main.go

.github/workflows/ci_todos.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ jobs:
1717
shell: bash
1818
# TODOs may be committed as long as the same line contains a link to a Github Issue or refers to a CrypTool SIM.
1919
run: |
20-
ALL_TODO_COUNT=$( { grep -r "TODO" . --exclude-dir=./releases --exclude-dir=./TestVectors/runtimes --exclude-dir=./submodules --exclude-dir=./.git --exclude=./.github/workflows/ci_todos.yml || true; } | wc -l)
21-
GOOD_TODO_COUNT=$( { grep -r "TODO.*\(github.com\/.*issues.*\/[1-9][0-9]*\|CrypTool-[1-9][0-9]*\)" . --exclude-dir=./releases --exclude-dir=./submodules --exclude-dir=./.git --exclude-dir=./TestVectors/runtimes --exclude=./.github/workflows/ci_todos.yml || true; } | wc -l)
20+
ALL_TODO_COUNT=$( { grep -r "TODO" . --exclude-dir=./releases --exclude-dir=./TestVectors/runtimes --exclude-dir=./submodules --exclude-dir=./.git --exclude=./.github/workflows/ci_todos.yml | grep -v "context\.TODO()" || true; } | wc -l)
21+
GOOD_TODO_COUNT=$( { grep -r "TODO.*\(github.com\/.*issues.*\/[1-9][0-9]*\|CrypTool-[1-9][0-9]*\)" . --exclude-dir=./releases --exclude-dir=./submodules --exclude-dir=./.git --exclude-dir=./TestVectors/runtimes --exclude=./.github/workflows/ci_todos.yml | grep -v "context\.TODO()" || true; } | wc -l)
2222
if [ "$ALL_TODO_COUNT" != "$GOOD_TODO_COUNT" ]; then
2323
exit 1;
2424
fi

.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

.github/workflows/pull.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@ jobs:
5454
uses: ./.github/workflows/library_rust_tests.yml
5555
with:
5656
dafny: ${{needs.getVersion.outputs.version}}
57+
pr-ci-go:
58+
needs: getVersion
59+
uses: ./.github/workflows/ci_test_go.yml
60+
with:
61+
dafny: ${{needs.getVersion.outputs.version}}
5762
pr-ci-net-test-vectors:
5863
needs: getVersion
5964
uses: ./.github/workflows/ci_test_vector_net.yml
@@ -78,6 +83,7 @@ jobs:
7883
- pr-ci-java-examples
7984
- pr-ci-net
8085
- pr-ci-rust
86+
- pr-ci-go
8187
- pr-ci-net-test-vectors
8288
- pr-ci-net-examples
8389
runs-on: ubuntu-22.04

.github/workflows/push.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ jobs:
5656
uses: ./.github/workflows/library_rust_tests.yml
5757
with:
5858
dafny: ${{needs.getVersion.outputs.version}}
59+
pr-ci-go:
60+
needs: getVersion
61+
uses: ./.github/workflows/ci_test_go.yml
62+
with:
63+
dafny: ${{needs.getVersion.outputs.version}}
5964
pr-ci-net-test-vectors:
6065
needs: getVersion
6166
uses: ./.github/workflows/ci_test_vector_net.yml

DynamoDbEncryption/Makefile

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
CORES=2
55

66
TRANSPILE_TESTS_IN_RUST=1
7+
ENABLE_EXTERN_PROCESSING=1
78

89
include ../SharedMakefile.mk
910

@@ -99,3 +100,107 @@ SERVICE_DEPS_DynamoDbEncryptionTransforms := \
99100
DynamoDbEncryption/dafny/DynamoDbEncryption \
100101
DynamoDbEncryption/dafny/StructuredEncryption \
101102
DynamoDbEncryption/dafny/DynamoDbItemEncryptor
103+
104+
# Go
105+
# TODO-Go-ORR: Define the name later https://sim.amazon.com/issues/CrypTool-5444
106+
# This will probably get changes to */releases/go/* but I will bring this to the team later.
107+
GO_MODULE_NAME="github.com/aws/aws-database-encryption-sdk-dynamodb"
108+
109+
GO_DEPENDENCY_MODULE_NAMES := \
110+
--dependency-library-name=aws.cryptography.primitives=github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives \
111+
--dependency-library-name=com.amazonaws.kms=github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms \
112+
--dependency-library-name=com.amazonaws.dynamodb=github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb \
113+
--dependency-library-name=aws.cryptography.materialProviders=github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl \
114+
--dependency-library-name=aws.cryptography.keyStore=github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl \
115+
--dependency-library-name=sdk.com.amazonaws.dynamodb=github.com/aws/aws-sdk-go-v2/service/dynamodb \
116+
--dependency-library-name=sdk.com.amazonaws.kms=github.com/aws/aws-sdk-go-v2/service/kms \
117+
--dependency-library-name=aws.cryptography.dbEncryptionSdk.structuredEncryption=github.com/aws/aws-database-encryption-sdk-dynamodb \
118+
--dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb=github.com/aws/aws-database-encryption-sdk-dynamodb \
119+
--dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb.itemEncryptor=github.com/aws/aws-database-encryption-sdk-dynamodb \
120+
--dependency-library-name=aws.cryptography.dbEncryptionSdk.dynamoDb.transforms=github.com/aws/aws-database-encryption-sdk-dynamodb
121+
122+
TRANSLATION_RECORD_GO := \
123+
submodules/MaterialProviders/StandardLibrary/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \
124+
submodules/MaterialProviders/ComAmazonawsKms/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \
125+
submodules/MaterialProviders/ComAmazonawsDynamodb/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \
126+
submodules/MaterialProviders/AwsCryptographyPrimitives/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr \
127+
submodules/MaterialProviders/AwsCryptographicMaterialProviders/runtimes/go/ImplementationFromDafny-go/ImplementationFromDafny-go.dtr
128+
129+
# Constants for languages that drop extern names (Python, Go)
130+
131+
DYNAMODB_TYPES_FILE_PATH=dafny/DynamoDbEncryption/Model/AwsCryptographyDbEncryptionSdkDynamoDbTypes.dfy
132+
DYNAMODB_TYPES_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.dynamodb.internaldafny.types\" } AwsCryptographyDbEncryptionSdkDynamoDbTypes"
133+
DYNAMODB_TYPES_FILE_WITHOUT_EXTERN_STRING="module AwsCryptographyDbEncryptionSdkDynamoDbTypes"
134+
135+
DYNAMODB_INDEX_FILE_PATH=dafny/DynamoDbEncryption/src/Index.dfy
136+
DYNAMODB_INDEX_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.dynamodb.internaldafny\" } DynamoDbEncryption"
137+
DYNAMODB_INDEX_FILE_WITHOUT_EXTERN_STRING="module DynamoDbEncryption"
138+
139+
ITEMENCRYPTOR_TYPES_FILE_PATH=dafny/DynamoDbItemEncryptor/Model/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.dfy
140+
ITEMENCRYPTOR_TYPES_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.dynamodb.itemencryptor.internaldafny.types\" } AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes"
141+
ITEMENCRYPTOR_TYPES_FILE_WITHOUT_EXTERN_STRING="module AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes"
142+
143+
ITEMENCRYPTOR_INDEX_FILE_PATH=dafny/DynamoDbItemEncryptor/src/Index.dfy
144+
ITEMENCRYPTOR_INDEX_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.dynamodb.itemencryptor.internaldafny\" } DynamoDbItemEncryptor"
145+
ITEMENCRYPTOR_INDEX_FILE_WITHOUT_EXTERN_STRING="module DynamoDbItemEncryptor"
146+
147+
ITEMENCRYPTOR_LEGACY_FILE_PATH=dafny/DynamoDbItemEncryptor/src/InternalLegacyOverride.dfy
148+
ITEMENCRYPTOR_LEGACY_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.dynamodb.itemencryptor.internaldafny.legacy\"} InternalLegacyOverride {"
149+
ITEMENCRYPTOR_LEGACY_FILE_WITHOUT_EXTERN_STRING="module InternalLegacyOverride {"
150+
151+
TRANSFORMS_TYPES_FILE_PATH=dafny/DynamoDbEncryptionTransforms/Model/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.dfy
152+
TRANSFORMS_TYPES_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.dynamodb.transforms.internaldafny.types\" } AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes"
153+
TRANSFORMS_TYPES_FILE_WITHOUT_EXTERN_STRING="module AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes"
154+
155+
TRANSFORMS_INDEX_FILE_PATH=dafny/DynamoDbEncryptionTransforms/src/Index.dfy
156+
TRANSFORMS_INDEX_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.dynamodb.transforms.internaldafny\" } DynamoDbEncryptionTransforms"
157+
TRANSFORMS_INDEX_FILE_WITHOUT_EXTERN_STRING="module DynamoDbEncryptionTransforms"
158+
159+
STRUCTUREDENCRYPTION_TYPES_FILE_PATH=dafny/StructuredEncryption/Model/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.dfy
160+
STRUCTUREDENCRYPTION_TYPES_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.structuredencryption.internaldafny.types\" } AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes"
161+
STRUCTUREDENCRYPTION_TYPES_FILE_WITHOUT_EXTERN_STRING="module AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes"
162+
163+
STRUCTUREDENCRYPTION_INDEX_FILE_PATH=dafny/StructuredEncryption/src/Index.dfy
164+
STRUCTUREDENCRYPTION_INDEX_FILE_WITH_EXTERN_STRING="module {:extern \"software.amazon.cryptography.dbencryptionsdk.structuredencryption.internaldafny\" } StructuredEncryption"
165+
STRUCTUREDENCRYPTION_INDEX_FILE_WITHOUT_EXTERN_STRING="module StructuredEncryption"
166+
167+
# Target to restore all directories in a list
168+
# TODO: Remove this once we don't copy all of the directories and files into implementation and test https://sim.amazon.com/issues/CrypTool-5447
169+
RESTORE_FILES_DIR := README.md
170+
_polymorph_go: restore_file_directories
171+
restore_file_directories:
172+
@for dir in $(RESTORE_FILES_DIR); do \
173+
if [ -e "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+
182+
_sed_types_file_remove_extern:
183+
$(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)
184+
$(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)
185+
$(MAKE) _sed_file SED_FILE_PATH=$(TRANSFORMS_TYPES_FILE_PATH) SED_BEFORE_STRING=$(TRANSFORMS_TYPES_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(TRANSFORMS_TYPES_FILE_WITHOUT_EXTERN_STRING)
186+
$(MAKE) _sed_file SED_FILE_PATH=$(STRUCTUREDENCRYPTION_TYPES_FILE_PATH) SED_BEFORE_STRING=$(STRUCTUREDENCRYPTION_TYPES_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(STRUCTUREDENCRYPTION_TYPES_FILE_WITHOUT_EXTERN_STRING)
187+
188+
_sed_index_file_remove_extern:
189+
$(MAKE) _sed_file SED_FILE_PATH=$(DYNAMODB_INDEX_FILE_PATH) SED_BEFORE_STRING=$(DYNAMODB_INDEX_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(DYNAMODB_INDEX_FILE_WITHOUT_EXTERN_STRING)
190+
$(MAKE) _sed_file SED_FILE_PATH=$(ITEMENCRYPTOR_INDEX_FILE_PATH) SED_BEFORE_STRING=$(ITEMENCRYPTOR_INDEX_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(ITEMENCRYPTOR_INDEX_FILE_WITHOUT_EXTERN_STRING)
191+
$(MAKE) _sed_file SED_FILE_PATH=$(ITEMENCRYPTOR_LEGACY_FILE_PATH) SED_BEFORE_STRING=$(ITEMENCRYPTOR_LEGACY_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(ITEMENCRYPTOR_LEGACY_FILE_WITHOUT_EXTERN_STRING)
192+
$(MAKE) _sed_file SED_FILE_PATH=$(TRANSFORMS_INDEX_FILE_PATH) SED_BEFORE_STRING=$(TRANSFORMS_INDEX_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(TRANSFORMS_INDEX_FILE_WITHOUT_EXTERN_STRING)
193+
$(MAKE) _sed_file SED_FILE_PATH=$(STRUCTUREDENCRYPTION_INDEX_FILE_PATH) SED_BEFORE_STRING=$(STRUCTUREDENCRYPTION_INDEX_FILE_WITH_EXTERN_STRING) SED_AFTER_STRING=$(STRUCTUREDENCRYPTION_INDEX_FILE_WITHOUT_EXTERN_STRING)
194+
195+
_sed_types_file_add_extern:
196+
$(MAKE) _sed_file SED_FILE_PATH=$(DYNAMODB_TYPES_FILE_PATH) SED_BEFORE_STRING=$(DYNAMODB_TYPES_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(DYNAMODB_TYPES_FILE_WITH_EXTERN_STRING)
197+
$(MAKE) _sed_file SED_FILE_PATH=$(ITEMENCRYPTOR_TYPES_FILE_PATH) SED_BEFORE_STRING=$(ITEMENCRYPTOR_TYPES_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(ITEMENCRYPTOR_TYPES_FILE_WITH_EXTERN_STRING)
198+
$(MAKE) _sed_file SED_FILE_PATH=$(TRANSFORMS_TYPES_FILE_PATH) SED_BEFORE_STRING=$(TRANSFORMS_TYPES_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(TRANSFORMS_TYPES_FILE_WITH_EXTERN_STRING)
199+
$(MAKE) _sed_file SED_FILE_PATH=$(STRUCTUREDENCRYPTION_TYPES_FILE_PATH) SED_BEFORE_STRING=$(STRUCTUREDENCRYPTION_TYPES_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(STRUCTUREDENCRYPTION_TYPES_FILE_WITH_EXTERN_STRING)
200+
201+
_sed_index_file_add_extern:
202+
$(MAKE) _sed_file SED_FILE_PATH=$(DYNAMODB_INDEX_FILE_PATH) SED_BEFORE_STRING=$(DYNAMODB_INDEX_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(DYNAMODB_INDEX_FILE_WITH_EXTERN_STRING)
203+
$(MAKE) _sed_file SED_FILE_PATH=$(ITEMENCRYPTOR_INDEX_FILE_PATH) SED_BEFORE_STRING=$(ITEMENCRYPTOR_INDEX_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(ITEMENCRYPTOR_INDEX_FILE_WITH_EXTERN_STRING)
204+
$(MAKE) _sed_file SED_FILE_PATH=$(ITEMENCRYPTOR_LEGACY_FILE_PATH) SED_BEFORE_STRING=$(ITEMENCRYPTOR_LEGACY_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(ITEMENCRYPTOR_LEGACY_FILE_WITH_EXTERN_STRING)
205+
$(MAKE) _sed_file SED_FILE_PATH=$(TRANSFORMS_INDEX_FILE_PATH) SED_BEFORE_STRING=$(TRANSFORMS_INDEX_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(TRANSFORMS_INDEX_FILE_WITH_EXTERN_STRING)
206+
$(MAKE) _sed_file SED_FILE_PATH=$(STRUCTUREDENCRYPTION_INDEX_FILE_PATH) SED_BEFORE_STRING=$(STRUCTUREDENCRYPTION_INDEX_FILE_WITHOUT_EXTERN_STRING) SED_AFTER_STRING=$(STRUCTUREDENCRYPTION_INDEX_FILE_WITH_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

0 commit comments

Comments
 (0)