Skip to content

Commit

Permalink
less redundant code on tests
Browse files Browse the repository at this point in the history
  • Loading branch information
markussiebert committed Apr 10, 2022
1 parent ee9fb7e commit 35435f3
Show file tree
Hide file tree
Showing 10 changed files with 31 additions and 72 deletions.
1 change: 1 addition & 0 deletions .npmignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .projenrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ project.prettier.addIgnorePattern('API.md');
project.prettier.addIgnorePattern('package.json');
project.jest.addIgnorePattern('/lambda/');
project.gitignore.addPatterns('/assets');
project.npmignore.addPatterns('/lambda', '/dist-lambda', '!/assets');
project.npmignore.addPatterns('/lambda', '/dist-lambda', '/scripts', '!/assets');

goreleaserArtifactsNamespace = 'build-artifact-goreleaser';

Expand Down
23 changes: 1 addition & 22 deletions lambda/handler_common_test.go
Original file line number Diff line number Diff line change
@@ -1,34 +1,13 @@
package main

import (
"context"
"encoding/json"
"testing"
"time"

"github.com/aws/aws-lambda-go/cfn"
"github.com/aws/aws-lambda-go/lambdacontext"
"github.com/gkampitakis/go-snaps/snaps"
)

func Test_FullWorkflow_Delete(t *testing.T) {
mocks := &AWS{
secretsmanager: &SecretsManagerMockClient{
t: t,
},
s3downlaoder: &S3ManagerMockClient{
t: t,
},
}
d := time.Now().Add(50 * time.Millisecond)
ctx, _ := context.WithDeadline(context.Background(), d)
ctx = lambdacontext.NewContext(ctx, &lambdacontext.LambdaContext{
AwsRequestID: "AwsRequestID",
InvokedFunctionArn: "arn:aws:lambda:us-east-2:123456789012:function:blank-go",
})
inputJson := ReadJSONFromFile(t, "events/event_delete.json")
var event cfn.Event
err := json.Unmarshal(inputJson, &event)
mocks, ctx, event := prepareHandler(t, "events/event_delete.json")

phys, data, err := mocks.syncSopsToSecretsmanager(ctx, event)
check(err)
Expand Down
18 changes: 2 additions & 16 deletions lambda/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,7 @@ func TestMain(t *testing.M) {
}

func Test_GetS3FileContent(t *testing.T) {
mocks := &AWS{
secretsmanager: &SecretsManagerMockClient{
t: t,
},
s3downlaoder: &S3ManagerMockClient{
t: t,
},
}
mocks := getMocks(t)
data, err := mocks.getS3FileContent(SopsS3File{
Bucket: "..",
Key: "../test-secrets/json/sopsfile.enc-age.json",
Expand All @@ -37,14 +30,7 @@ func Test_GetS3FileContent(t *testing.T) {
}

func Test_UpdateSecret(t *testing.T) {
mocks := &AWS{
secretsmanager: &SecretsManagerMockClient{
t: t,
},
s3downlaoder: &S3ManagerMockClient{
t: t,
},
}
mocks := getMocks(t)
fileName := "4547532a137611d83958d17095c6c2d38ae0036a760c3b79c9dd5957d1c20cf2.yaml"
inputArn := "arn:${Partition}:secretsmanager:${Region}:${Account}:secret:${SecretId}"
secretValue := []byte("some-secret-data")
Expand Down
10 changes: 6 additions & 4 deletions lambda/testhelper.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,17 +59,19 @@ func fileToInline(event cfn.Event) cfn.Event {
delete(event.ResourceProperties, "SopsS3File")
return event
}

func prepareHandler(t *testing.T, eventFile string) (*AWS, context.Context, cfn.Event) {
os.Setenv("SOPS_AGE_KEY", "AGE-SECRET-KEY-1EFUWJ0G2XJTJFWTAM2DGMA4VCK3R05W58FSMHZP3MZQ0ZTAQEAFQC6T7T3")
mocks := &AWS{
func getMocks(t *testing.T) *AWS {
return &AWS{
secretsmanager: &SecretsManagerMockClient{
t: t,
},
s3downlaoder: &S3ManagerMockClient{
t: t,
},
}
}
func prepareHandler(t *testing.T, eventFile string) (*AWS, context.Context, cfn.Event) {
os.Setenv("SOPS_AGE_KEY", "AGE-SECRET-KEY-1EFUWJ0G2XJTJFWTAM2DGMA4VCK3R05W58FSMHZP3MZQ0ZTAQEAFQC6T7T3")
mocks := getMocks(t)
d := time.Now().Add(50 * time.Millisecond)
ctx, _ := context.WithDeadline(context.Background(), d)
ctx = lambdacontext.NewContext(ctx, &lambdacontext.LambdaContext{
Expand Down
9 changes: 0 additions & 9 deletions scripts/build-lambda-in-docker.sh

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
{
"version": "15.0.0",
"files": {
"d52622ad8aa77b542ad10d97242948ce424ce179e6ff37442d39100e0c015be1": {
"320d902d5ed26ab52736748298f21141e8f9655f6e76c6874bf4a99e724d1f93": {
"source": {
"path": "asset.d52622ad8aa77b542ad10d97242948ce424ce179e6ff37442d39100e0c015be1.zip",
"path": "asset.320d902d5ed26ab52736748298f21141e8f9655f6e76c6874bf4a99e724d1f93.zip",
"packaging": "file"
},
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
"objectKey": "d52622ad8aa77b542ad10d97242948ce424ce179e6ff37442d39100e0c015be1.zip",
"objectKey": "320d902d5ed26ab52736748298f21141e8f9655f6e76c6874bf4a99e724d1f93.zip",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
},
"52ddff6d83f1e816885fa94c5c703efb952058046c3180e173503ca5210ede7e": {
"4580cf4f9bc59ddb2379f2d82427c86621c7878b67b8ded8c4750803e302f4bb": {
"source": {
"path": "SecretIntegrationAsset.template.json",
"packaging": "file"
},
"destinations": {
"current_account-current_region": {
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
"objectKey": "52ddff6d83f1e816885fa94c5c703efb952058046c3180e173503ca5210ede7e.json",
"objectKey": "4580cf4f9bc59ddb2379f2d82427c86621c7878b67b8ded8c4750803e302f4bb.json",
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@
"S3Bucket": {
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
},
"S3Key": "d52622ad8aa77b542ad10d97242948ce424ce179e6ff37442d39100e0c015be1.zip"
"S3Key": "320d902d5ed26ab52736748298f21141e8f9655f6e76c6874bf4a99e724d1f93.zip"
},
"Role": {
"Fn::GetAtt": [
Expand Down Expand Up @@ -282,8 +282,8 @@
"Ref": "SopsComplexSecretJSONAD4C2662"
},
"SopsInline": {
"Content": "ewoJInNvbWUiOiB7CgkJImRlZXAiOiB7CgkJCSJuZXN0ZWQiOiB7CgkJCQkib2JqZWN0IjogIkVOQ1tBRVMyNTZfR0NNLGRhdGE6eXVrSHVHc0Qwd2dZLGl2OlVnaG44T2dOY2RJUFN6MWhYQ3BjbkpPRFNEcmsxOXkwVU1jd1F6VFJKRmM9LHRhZzp3T3BhMDNQZHA2M2VlVkwxdDlHUHdBPT0sdHlwZTpzdHJdIiwKCQkJCSJhcnJheXMiOiBbCgkJCQkJIkVOQ1tBRVMyNTZfR0NNLGRhdGE6TTMrOHZnPT0saXY6R0RyUWxSbkgwUDMybWxEOWVaTW92aEo0Tms2ck1iL0U3OUdRNXVQYmEwND0sdGFnOmFiT3YzeXNVMVlrOTZtdXhMR3lPSFE9PSx0eXBlOnN0cl0iLAoJCQkJCSJFTkNbQUVTMjU2X0dDTSxkYXRhOjBOQzBHTDVwUkE9PSxpdjorSkg2MlJTa253NkFYTjZ2TVBEQjJnbTlSUnRuQ2h4UHo4dHc5OVgvNnkwPSx0YWc6WlBLekhDWTY2SEswQmF1a2p2Wmx2UT09LHR5cGU6c3RyXSIsCgkJCQkJewoJCQkJCQkidmFsdWVzIjogewoJCQkJCQkJImFuZCI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOmQycDh4UjN5SFIwPSxpdjpKZktGSUpxc2d4d0pmL3lzcDExeWdvVlY0R3VhNE4vVFlBVXlEQzZBQ3c0PSx0YWc6MTNWNnozT2lkVkpmdlN3c1ZLa2FGZz09LHR5cGU6c3RyXSIKCQkJCQkJfQoJCQkJCX0KCQkJCV0KCQkJfQoJCX0sCgkJIm5vdHNvZGVlcCI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOktTZjZwbDFlLGl2Ok9LUjUraHc2R0N6Ym03NTBzQWxBWFc4L0c0U2U4QnUxRldISHRFZW5ZZVU9LHRhZzo1aGxGMDNPbTdxVmNKVUczVTk1dXZRPT0sdHlwZTpzdHJdIgoJfSwKCSJhbmQgbm93IjogewoJCSJzb21lIjogWwoJCQl7CgkJCQkiYmFzaWMiOiAiRU5DW0FFUzI1Nl9HQ00sZGF0YTpLQm80L2swPSxpdjprcDRneGhDcFduUC9WdkluRkJObHdYVEU2c2s0OE4zMjJzQWFHc05lZWJrPSx0YWc6RTQ1encxMmxrUmdLZEVJSC9BUm55QT09LHR5cGU6Ym9vbF0iCgkJCX0sCgkJCXsKCQkJCSJuZXN0ZWQiOiAiRU5DW0FFUzI1Nl9HQ00sZGF0YTpyekpzMW04PSxpdjorb1JuWFlQYTZKYnYvaU50MVFrbnloZFI3WjY3ZlZIVnEybnZxM0daT1RVPSx0YWc6QVdMaHRENEUvK0VISURKZ2lwcU0xQT09LHR5cGU6ZmxvYXRdIgoJCQl9LAoJCQl7CgkJCQkidHlwZSI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOm5haFYzQk5FLGl2OmlkZGppenRqUmFVcVRhUzZ1VlRQUERpWEhOWVJEQytvSVBEODE5L0dDUnM9LHRhZzpxRDRienRDR3c5QzR3aTBLbDd2TFV3PT0sdHlwZTpmbG9hdF0iCgkJCX0sCgkJCXsKCQkJCSJ0ZXN0cyI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOjhvZlhUSE5ENnc9PSxpdjpEcktvNHJ2M3ZWL044YjFTNWRUaUpHeUxITmx2bnJYOGdJWkRxTnpxMWVnPSx0YWc6Z0ZQbmRWOTZyT2sxUjBkQXplZm11QT09LHR5cGU6c3RyXSIKCQkJfQoJCV0KCX0sCgkic29wcyI6IHsKCQkia21zIjogbnVsbCwKCQkiZ2NwX2ttcyI6IG51bGwsCgkJImF6dXJlX2t2IjogbnVsbCwKCQkiaGNfdmF1bHQiOiBudWxsLAoJCSJhZ2UiOiBbCgkJCXsKCQkJCSJyZWNpcGllbnQiOiAiYWdlMWRqbGx3MnB6dXBycnFjMGVuNW04dmM4azVnZTN0bTBmNmc3Y2owYzBnbGZ6cDQ0dmRjNHFsOG5ndnUiLAoJCQkJImVuYyI6ICItLS0tLUJFR0lOIEFHRSBFTkNSWVBURUQgRklMRS0tLS0tXG5ZV2RsTFdWdVkzSjVjSFJwYjI0dWIzSm5MM1l4Q2kwK0lGZ3lOVFV4T1NBeFQzTkdVMEpFVDBOaVkxTlFjbTluXG5aRlpRU0NzMU56ZFphRWt2U0dobVREVjZiRkJIWTJWWmEyZGpDa2xDWmtKNFZ5OVNUbEJ1ZDJwclNtNUtSMWhyXG5OMGhwYURkb1dHdHhha1I2TVdnNVVqSTBTWEJpYlVVS0xTMHRJSGR0UjI5U1dUSXhXbWhNZW5sYWVVNXhlbTl1XG5LemhLYTNOS2JHcDJkRlZ4TVRWdVdpOVZkWEozTVc4S2FuejNEcElnUFhPOXU0NFRVc1RQdGd3VExiUDZZcFVmXG5Kb3Y0VDJvTHk0VW82NjhSTkNCMWZiS250NW55Y21SSnhlK3JZbU92bjJWZUw5dldjdzBrWnc9PVxuLS0tLS1FTkQgQUdFIEVOQ1JZUFRFRCBGSUxFLS0tLS1cbiIKCQkJfQoJCV0sCgkJImxhc3Rtb2RpZmllZCI6ICIyMDIyLTA0LTEwVDE5OjQ0OjIwWiIsCgkJIm1hYyI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOlRLbjY0VnZJbFI1ZDA4RU5BNmhOdVpXcGExNjNUM2gvV0VnSWRYZ29sQnQ0NXZMendIV2swL3FnSVNIaW8vRVlURm81cUVjaHp6OXNmN3p2V1FEWnRHWW9SanFTV2U1U3lPbWtGQS9TeHhHbVZhNFluYXpiclF4QVhvVENidWNvWjRDdlVzZklIZWIrY3pYWDh1bmdBUE5vb29LUmVOT05RTUZUWFhUbHR2MD0saXY6NGEraVJ5WmpWbkN0QTQ1ZEEvYnBKNEo2eE9oQmY1bVRoSXhpT3J2TWdIOD0sdGFnOllZQjNLSFl2U3F4RmhvRWMrL0RQQWc9PSx0eXBlOnN0cl0iLAoJCSJwZ3AiOiBudWxsLAoJCSJ1bmVuY3J5cHRlZF9zdWZmaXgiOiAiX3VuZW5jcnlwdGVkIiwKCQkidmVyc2lvbiI6ICIzLjcuMiIKCX0KfQ==",
"Hash": "e3ad66acdedca32a1cb5753a756e1fec1ef8ef26a8f01eee1868f099e71c4585"
"Content": "ewoJInNvbWUiOiB7CgkJImRlZXAiOiB7CgkJCSJuZXN0ZWQiOiB7CgkJCQkib2JqZWN0IjogIkVOQ1tBRVMyNTZfR0NNLGRhdGE6eXVrSHVHc0Qwd2dZLGl2OlVnaG44T2dOY2RJUFN6MWhYQ3BjbkpPRFNEcmsxOXkwVU1jd1F6VFJKRmM9LHRhZzp3T3BhMDNQZHA2M2VlVkwxdDlHUHdBPT0sdHlwZTpzdHJdIiwKCQkJCSJhcnJheXMiOiBbCgkJCQkJIkVOQ1tBRVMyNTZfR0NNLGRhdGE6TTMrOHZnPT0saXY6R0RyUWxSbkgwUDMybWxEOWVaTW92aEo0Tms2ck1iL0U3OUdRNXVQYmEwND0sdGFnOmFiT3YzeXNVMVlrOTZtdXhMR3lPSFE9PSx0eXBlOnN0cl0iLAoJCQkJCSJFTkNbQUVTMjU2X0dDTSxkYXRhOjBOQzBHTDVwUkE9PSxpdjorSkg2MlJTa253NkFYTjZ2TVBEQjJnbTlSUnRuQ2h4UHo4dHc5OVgvNnkwPSx0YWc6WlBLekhDWTY2SEswQmF1a2p2Wmx2UT09LHR5cGU6c3RyXSIsCgkJCQkJewoJCQkJCQkidmFsdWVzIjogewoJCQkJCQkJImFuZCI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOlBWam5aMlptOWc9PSxpdjpXQWVORFQ0eGw5WEtYbmtHQXJzREthTjZUeFJUSTh1V090bjh4K0cwaG5NPSx0YWc6U3lMaWI4UlBONjVweXFrRmdQaGxWQT09LHR5cGU6c3RyXSIKCQkJCQkJfQoJCQkJCX0KCQkJCV0KCQkJfQoJCX0sCgkJIm5vdHNvZGVlcCI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOktTZjZwbDFlLGl2Ok9LUjUraHc2R0N6Ym03NTBzQWxBWFc4L0c0U2U4QnUxRldISHRFZW5ZZVU9LHRhZzo1aGxGMDNPbTdxVmNKVUczVTk1dXZRPT0sdHlwZTpzdHJdIgoJfSwKCSJhbmQgbm93IjogewoJCSJzb21lIjogWwoJCQl7CgkJCQkiYmFzaWMiOiAiRU5DW0FFUzI1Nl9HQ00sZGF0YTpLQm80L2swPSxpdjprcDRneGhDcFduUC9WdkluRkJObHdYVEU2c2s0OE4zMjJzQWFHc05lZWJrPSx0YWc6RTQ1encxMmxrUmdLZEVJSC9BUm55QT09LHR5cGU6Ym9vbF0iCgkJCX0sCgkJCXsKCQkJCSJuZXN0ZWQiOiAiRU5DW0FFUzI1Nl9HQ00sZGF0YTpyekpzMW04PSxpdjorb1JuWFlQYTZKYnYvaU50MVFrbnloZFI3WjY3ZlZIVnEybnZxM0daT1RVPSx0YWc6QVdMaHRENEUvK0VISURKZ2lwcU0xQT09LHR5cGU6ZmxvYXRdIgoJCQl9LAoJCQl7CgkJCQkidHlwZSI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOm5haFYzQk5FLGl2OmlkZGppenRqUmFVcVRhUzZ1VlRQUERpWEhOWVJEQytvSVBEODE5L0dDUnM9LHRhZzpxRDRienRDR3c5QzR3aTBLbDd2TFV3PT0sdHlwZTpmbG9hdF0iCgkJCX0sCgkJCXsKCQkJCSJ0ZXN0cyI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOjhvZlhUSE5ENnc9PSxpdjpEcktvNHJ2M3ZWL044YjFTNWRUaUpHeUxITmx2bnJYOGdJWkRxTnpxMWVnPSx0YWc6Z0ZQbmRWOTZyT2sxUjBkQXplZm11QT09LHR5cGU6c3RyXSIKCQkJfQoJCV0KCX0sCgkic29wcyI6IHsKCQkia21zIjogbnVsbCwKCQkiZ2NwX2ttcyI6IG51bGwsCgkJImF6dXJlX2t2IjogbnVsbCwKCQkiaGNfdmF1bHQiOiBudWxsLAoJCSJhZ2UiOiBbCgkJCXsKCQkJCSJyZWNpcGllbnQiOiAiYWdlMWRqbGx3MnB6dXBycnFjMGVuNW04dmM4azVnZTN0bTBmNmc3Y2owYzBnbGZ6cDQ0dmRjNHFsOG5ndnUiLAoJCQkJImVuYyI6ICItLS0tLUJFR0lOIEFHRSBFTkNSWVBURUQgRklMRS0tLS0tXG5ZV2RsTFdWdVkzSjVjSFJwYjI0dWIzSm5MM1l4Q2kwK0lGZ3lOVFV4T1NBeFQzTkdVMEpFVDBOaVkxTlFjbTluXG5aRlpRU0NzMU56ZFphRWt2U0dobVREVjZiRkJIWTJWWmEyZGpDa2xDWmtKNFZ5OVNUbEJ1ZDJwclNtNUtSMWhyXG5OMGhwYURkb1dHdHhha1I2TVdnNVVqSTBTWEJpYlVVS0xTMHRJSGR0UjI5U1dUSXhXbWhNZW5sYWVVNXhlbTl1XG5LemhLYTNOS2JHcDJkRlZ4TVRWdVdpOVZkWEozTVc4S2FuejNEcElnUFhPOXU0NFRVc1RQdGd3VExiUDZZcFVmXG5Kb3Y0VDJvTHk0VW82NjhSTkNCMWZiS250NW55Y21SSnhlK3JZbU92bjJWZUw5dldjdzBrWnc9PVxuLS0tLS1FTkQgQUdFIEVOQ1JZUFRFRCBGSUxFLS0tLS1cbiIKCQkJfQoJCV0sCgkJImxhc3Rtb2RpZmllZCI6ICIyMDIyLTA0LTAzVDE3OjI0OjI0WiIsCgkJIm1hYyI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOm1VU0tGeVlxYnhRV2lyZnpOdnlOTXZySjkraiszUTlzL0FSak9XSlpPSnJBeXBKWVB0YlphL2R1U0w0Q3pCVzZLZExmOVlSZkk3SGppS1g1RzhTVUw5ZjVCekFYSUdCcS9EQUVmYVhaOEFyekhmSzR0dHg5UGUydEwrRGpPLy9tSEdFSjg4SllFVmpyRU1MRytORGE5YXJwREtLOCtPNEx1RUNTb0NhYWFxST0saXY6MlcyVnRDVkdmc2tvb1dNQWlMb0xMY0RndTlQdXcyQ2YzZGkyaVRZdlBjVT0sdGFnOjVlcG44U2FFOERFMkVLUm1iSW8xZ2c9PSx0eXBlOnN0cl0iLAoJCSJwZ3AiOiBudWxsLAoJCSJ1bmVuY3J5cHRlZF9zdWZmaXgiOiAiX3VuZW5jcnlwdGVkIiwKCQkidmVyc2lvbiI6ICIzLjcuMiIKCX0KfQ==",
"Hash": "313aad921c737076a990ead756b250f1677aecc927177440df0c809cd56bf282"
},
"ConvertToJSON": true,
"Flatten": false,
Expand Down Expand Up @@ -314,8 +314,8 @@
"Ref": "SopsComplexSecretJSONFlatF5FC1D69"
},
"SopsInline": {
"Content": "ewoJInNvbWUiOiB7CgkJImRlZXAiOiB7CgkJCSJuZXN0ZWQiOiB7CgkJCQkib2JqZWN0IjogIkVOQ1tBRVMyNTZfR0NNLGRhdGE6eXVrSHVHc0Qwd2dZLGl2OlVnaG44T2dOY2RJUFN6MWhYQ3BjbkpPRFNEcmsxOXkwVU1jd1F6VFJKRmM9LHRhZzp3T3BhMDNQZHA2M2VlVkwxdDlHUHdBPT0sdHlwZTpzdHJdIiwKCQkJCSJhcnJheXMiOiBbCgkJCQkJIkVOQ1tBRVMyNTZfR0NNLGRhdGE6TTMrOHZnPT0saXY6R0RyUWxSbkgwUDMybWxEOWVaTW92aEo0Tms2ck1iL0U3OUdRNXVQYmEwND0sdGFnOmFiT3YzeXNVMVlrOTZtdXhMR3lPSFE9PSx0eXBlOnN0cl0iLAoJCQkJCSJFTkNbQUVTMjU2X0dDTSxkYXRhOjBOQzBHTDVwUkE9PSxpdjorSkg2MlJTa253NkFYTjZ2TVBEQjJnbTlSUnRuQ2h4UHo4dHc5OVgvNnkwPSx0YWc6WlBLekhDWTY2SEswQmF1a2p2Wmx2UT09LHR5cGU6c3RyXSIsCgkJCQkJewoJCQkJCQkidmFsdWVzIjogewoJCQkJCQkJImFuZCI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOmQycDh4UjN5SFIwPSxpdjpKZktGSUpxc2d4d0pmL3lzcDExeWdvVlY0R3VhNE4vVFlBVXlEQzZBQ3c0PSx0YWc6MTNWNnozT2lkVkpmdlN3c1ZLa2FGZz09LHR5cGU6c3RyXSIKCQkJCQkJfQoJCQkJCX0KCQkJCV0KCQkJfQoJCX0sCgkJIm5vdHNvZGVlcCI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOktTZjZwbDFlLGl2Ok9LUjUraHc2R0N6Ym03NTBzQWxBWFc4L0c0U2U4QnUxRldISHRFZW5ZZVU9LHRhZzo1aGxGMDNPbTdxVmNKVUczVTk1dXZRPT0sdHlwZTpzdHJdIgoJfSwKCSJhbmQgbm93IjogewoJCSJzb21lIjogWwoJCQl7CgkJCQkiYmFzaWMiOiAiRU5DW0FFUzI1Nl9HQ00sZGF0YTpLQm80L2swPSxpdjprcDRneGhDcFduUC9WdkluRkJObHdYVEU2c2s0OE4zMjJzQWFHc05lZWJrPSx0YWc6RTQ1encxMmxrUmdLZEVJSC9BUm55QT09LHR5cGU6Ym9vbF0iCgkJCX0sCgkJCXsKCQkJCSJuZXN0ZWQiOiAiRU5DW0FFUzI1Nl9HQ00sZGF0YTpyekpzMW04PSxpdjorb1JuWFlQYTZKYnYvaU50MVFrbnloZFI3WjY3ZlZIVnEybnZxM0daT1RVPSx0YWc6QVdMaHRENEUvK0VISURKZ2lwcU0xQT09LHR5cGU6ZmxvYXRdIgoJCQl9LAoJCQl7CgkJCQkidHlwZSI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOm5haFYzQk5FLGl2OmlkZGppenRqUmFVcVRhUzZ1VlRQUERpWEhOWVJEQytvSVBEODE5L0dDUnM9LHRhZzpxRDRienRDR3c5QzR3aTBLbDd2TFV3PT0sdHlwZTpmbG9hdF0iCgkJCX0sCgkJCXsKCQkJCSJ0ZXN0cyI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOjhvZlhUSE5ENnc9PSxpdjpEcktvNHJ2M3ZWL044YjFTNWRUaUpHeUxITmx2bnJYOGdJWkRxTnpxMWVnPSx0YWc6Z0ZQbmRWOTZyT2sxUjBkQXplZm11QT09LHR5cGU6c3RyXSIKCQkJfQoJCV0KCX0sCgkic29wcyI6IHsKCQkia21zIjogbnVsbCwKCQkiZ2NwX2ttcyI6IG51bGwsCgkJImF6dXJlX2t2IjogbnVsbCwKCQkiaGNfdmF1bHQiOiBudWxsLAoJCSJhZ2UiOiBbCgkJCXsKCQkJCSJyZWNpcGllbnQiOiAiYWdlMWRqbGx3MnB6dXBycnFjMGVuNW04dmM4azVnZTN0bTBmNmc3Y2owYzBnbGZ6cDQ0dmRjNHFsOG5ndnUiLAoJCQkJImVuYyI6ICItLS0tLUJFR0lOIEFHRSBFTkNSWVBURUQgRklMRS0tLS0tXG5ZV2RsTFdWdVkzSjVjSFJwYjI0dWIzSm5MM1l4Q2kwK0lGZ3lOVFV4T1NBeFQzTkdVMEpFVDBOaVkxTlFjbTluXG5aRlpRU0NzMU56ZFphRWt2U0dobVREVjZiRkJIWTJWWmEyZGpDa2xDWmtKNFZ5OVNUbEJ1ZDJwclNtNUtSMWhyXG5OMGhwYURkb1dHdHhha1I2TVdnNVVqSTBTWEJpYlVVS0xTMHRJSGR0UjI5U1dUSXhXbWhNZW5sYWVVNXhlbTl1XG5LemhLYTNOS2JHcDJkRlZ4TVRWdVdpOVZkWEozTVc4S2FuejNEcElnUFhPOXU0NFRVc1RQdGd3VExiUDZZcFVmXG5Kb3Y0VDJvTHk0VW82NjhSTkNCMWZiS250NW55Y21SSnhlK3JZbU92bjJWZUw5dldjdzBrWnc9PVxuLS0tLS1FTkQgQUdFIEVOQ1JZUFRFRCBGSUxFLS0tLS1cbiIKCQkJfQoJCV0sCgkJImxhc3Rtb2RpZmllZCI6ICIyMDIyLTA0LTEwVDE5OjQ0OjIwWiIsCgkJIm1hYyI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOlRLbjY0VnZJbFI1ZDA4RU5BNmhOdVpXcGExNjNUM2gvV0VnSWRYZ29sQnQ0NXZMendIV2swL3FnSVNIaW8vRVlURm81cUVjaHp6OXNmN3p2V1FEWnRHWW9SanFTV2U1U3lPbWtGQS9TeHhHbVZhNFluYXpiclF4QVhvVENidWNvWjRDdlVzZklIZWIrY3pYWDh1bmdBUE5vb29LUmVOT05RTUZUWFhUbHR2MD0saXY6NGEraVJ5WmpWbkN0QTQ1ZEEvYnBKNEo2eE9oQmY1bVRoSXhpT3J2TWdIOD0sdGFnOllZQjNLSFl2U3F4RmhvRWMrL0RQQWc9PSx0eXBlOnN0cl0iLAoJCSJwZ3AiOiBudWxsLAoJCSJ1bmVuY3J5cHRlZF9zdWZmaXgiOiAiX3VuZW5jcnlwdGVkIiwKCQkidmVyc2lvbiI6ICIzLjcuMiIKCX0KfQ==",
"Hash": "e3ad66acdedca32a1cb5753a756e1fec1ef8ef26a8f01eee1868f099e71c4585"
"Content": "ewoJInNvbWUiOiB7CgkJImRlZXAiOiB7CgkJCSJuZXN0ZWQiOiB7CgkJCQkib2JqZWN0IjogIkVOQ1tBRVMyNTZfR0NNLGRhdGE6eXVrSHVHc0Qwd2dZLGl2OlVnaG44T2dOY2RJUFN6MWhYQ3BjbkpPRFNEcmsxOXkwVU1jd1F6VFJKRmM9LHRhZzp3T3BhMDNQZHA2M2VlVkwxdDlHUHdBPT0sdHlwZTpzdHJdIiwKCQkJCSJhcnJheXMiOiBbCgkJCQkJIkVOQ1tBRVMyNTZfR0NNLGRhdGE6TTMrOHZnPT0saXY6R0RyUWxSbkgwUDMybWxEOWVaTW92aEo0Tms2ck1iL0U3OUdRNXVQYmEwND0sdGFnOmFiT3YzeXNVMVlrOTZtdXhMR3lPSFE9PSx0eXBlOnN0cl0iLAoJCQkJCSJFTkNbQUVTMjU2X0dDTSxkYXRhOjBOQzBHTDVwUkE9PSxpdjorSkg2MlJTa253NkFYTjZ2TVBEQjJnbTlSUnRuQ2h4UHo4dHc5OVgvNnkwPSx0YWc6WlBLekhDWTY2SEswQmF1a2p2Wmx2UT09LHR5cGU6c3RyXSIsCgkJCQkJewoJCQkJCQkidmFsdWVzIjogewoJCQkJCQkJImFuZCI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOlBWam5aMlptOWc9PSxpdjpXQWVORFQ0eGw5WEtYbmtHQXJzREthTjZUeFJUSTh1V090bjh4K0cwaG5NPSx0YWc6U3lMaWI4UlBONjVweXFrRmdQaGxWQT09LHR5cGU6c3RyXSIKCQkJCQkJfQoJCQkJCX0KCQkJCV0KCQkJfQoJCX0sCgkJIm5vdHNvZGVlcCI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOktTZjZwbDFlLGl2Ok9LUjUraHc2R0N6Ym03NTBzQWxBWFc4L0c0U2U4QnUxRldISHRFZW5ZZVU9LHRhZzo1aGxGMDNPbTdxVmNKVUczVTk1dXZRPT0sdHlwZTpzdHJdIgoJfSwKCSJhbmQgbm93IjogewoJCSJzb21lIjogWwoJCQl7CgkJCQkiYmFzaWMiOiAiRU5DW0FFUzI1Nl9HQ00sZGF0YTpLQm80L2swPSxpdjprcDRneGhDcFduUC9WdkluRkJObHdYVEU2c2s0OE4zMjJzQWFHc05lZWJrPSx0YWc6RTQ1encxMmxrUmdLZEVJSC9BUm55QT09LHR5cGU6Ym9vbF0iCgkJCX0sCgkJCXsKCQkJCSJuZXN0ZWQiOiAiRU5DW0FFUzI1Nl9HQ00sZGF0YTpyekpzMW04PSxpdjorb1JuWFlQYTZKYnYvaU50MVFrbnloZFI3WjY3ZlZIVnEybnZxM0daT1RVPSx0YWc6QVdMaHRENEUvK0VISURKZ2lwcU0xQT09LHR5cGU6ZmxvYXRdIgoJCQl9LAoJCQl7CgkJCQkidHlwZSI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOm5haFYzQk5FLGl2OmlkZGppenRqUmFVcVRhUzZ1VlRQUERpWEhOWVJEQytvSVBEODE5L0dDUnM9LHRhZzpxRDRienRDR3c5QzR3aTBLbDd2TFV3PT0sdHlwZTpmbG9hdF0iCgkJCX0sCgkJCXsKCQkJCSJ0ZXN0cyI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOjhvZlhUSE5ENnc9PSxpdjpEcktvNHJ2M3ZWL044YjFTNWRUaUpHeUxITmx2bnJYOGdJWkRxTnpxMWVnPSx0YWc6Z0ZQbmRWOTZyT2sxUjBkQXplZm11QT09LHR5cGU6c3RyXSIKCQkJfQoJCV0KCX0sCgkic29wcyI6IHsKCQkia21zIjogbnVsbCwKCQkiZ2NwX2ttcyI6IG51bGwsCgkJImF6dXJlX2t2IjogbnVsbCwKCQkiaGNfdmF1bHQiOiBudWxsLAoJCSJhZ2UiOiBbCgkJCXsKCQkJCSJyZWNpcGllbnQiOiAiYWdlMWRqbGx3MnB6dXBycnFjMGVuNW04dmM4azVnZTN0bTBmNmc3Y2owYzBnbGZ6cDQ0dmRjNHFsOG5ndnUiLAoJCQkJImVuYyI6ICItLS0tLUJFR0lOIEFHRSBFTkNSWVBURUQgRklMRS0tLS0tXG5ZV2RsTFdWdVkzSjVjSFJwYjI0dWIzSm5MM1l4Q2kwK0lGZ3lOVFV4T1NBeFQzTkdVMEpFVDBOaVkxTlFjbTluXG5aRlpRU0NzMU56ZFphRWt2U0dobVREVjZiRkJIWTJWWmEyZGpDa2xDWmtKNFZ5OVNUbEJ1ZDJwclNtNUtSMWhyXG5OMGhwYURkb1dHdHhha1I2TVdnNVVqSTBTWEJpYlVVS0xTMHRJSGR0UjI5U1dUSXhXbWhNZW5sYWVVNXhlbTl1XG5LemhLYTNOS2JHcDJkRlZ4TVRWdVdpOVZkWEozTVc4S2FuejNEcElnUFhPOXU0NFRVc1RQdGd3VExiUDZZcFVmXG5Kb3Y0VDJvTHk0VW82NjhSTkNCMWZiS250NW55Y21SSnhlK3JZbU92bjJWZUw5dldjdzBrWnc9PVxuLS0tLS1FTkQgQUdFIEVOQ1JZUFRFRCBGSUxFLS0tLS1cbiIKCQkJfQoJCV0sCgkJImxhc3Rtb2RpZmllZCI6ICIyMDIyLTA0LTAzVDE3OjI0OjI0WiIsCgkJIm1hYyI6ICJFTkNbQUVTMjU2X0dDTSxkYXRhOm1VU0tGeVlxYnhRV2lyZnpOdnlOTXZySjkraiszUTlzL0FSak9XSlpPSnJBeXBKWVB0YlphL2R1U0w0Q3pCVzZLZExmOVlSZkk3SGppS1g1RzhTVUw5ZjVCekFYSUdCcS9EQUVmYVhaOEFyekhmSzR0dHg5UGUydEwrRGpPLy9tSEdFSjg4SllFVmpyRU1MRytORGE5YXJwREtLOCtPNEx1RUNTb0NhYWFxST0saXY6MlcyVnRDVkdmc2tvb1dNQWlMb0xMY0RndTlQdXcyQ2YzZGkyaVRZdlBjVT0sdGFnOjVlcG44U2FFOERFMkVLUm1iSW8xZ2c9PSx0eXBlOnN0cl0iLAoJCSJwZ3AiOiBudWxsLAoJCSJ1bmVuY3J5cHRlZF9zdWZmaXgiOiAiX3VuZW5jcnlwdGVkIiwKCQkidmVyc2lvbiI6ICIzLjcuMiIKCX0KfQ==",
"Hash": "313aad921c737076a990ead756b250f1677aecc927177440df0c809cd56bf282"
},
"ConvertToJSON": true,
"Flatten": true,
Expand Down
Loading

0 comments on commit 35435f3

Please sign in to comment.