foundationdb/fdbrpc
Ata E Husain Bohra 2db1da26d9
EaR: Update ApiWorkload to validate encryption at-rest guarantees (#9466)
* EaR: Update ApiWorkload to validate encryption at-rest guarantees

Description

FDB encryption data at-rest guarantees if cluster is configured with feature
enabled, all data written to persistent disks shall be "encrypted". Given FDB
maintains multiple persistent storages during lifecycle of the data, the patch
proposes a scheme to validate the invariant via "simulation testing"

Patch proposes updating ApiCorrectness workload to do the following:
1. Client supplied params and/randomly enable the validation feature.
2. Validation when enabled, allows injecting a known "marker string"
to workload generated Key and Value data patterns.
3. On shutdown, if the validation is enabled, all test files are
scanned for the known "marker" pattern.

Simulation tests are already capable of doing the following:
1. Randomly select TenantMode (disabled/optional/required)
2. Randomly select EncryptionAtRestMode (cluster_aware/domain_aware)

Hence, the updates test all possible combinations are validated. Also,
'defaultTenant' is present to cover 'domain_aware' encryption use cases.

Testing
devRunCorrectness
devRetryCorrectness - ApiCorrectness & EncryptedBackupCorrectness
2023-02-27 21:40:46 -08:00
..
TokenSign Replace AuthZ's use of tenant names in token with tenant ID 2023-02-03 21:46:31 +01:00
include/fdbrpc EaR: Update ApiWorkload to validate encryption at-rest guarantees (#9466) 2023-02-27 21:40:46 -08:00
libcoroutine format source code after switch to clang 15 2022-12-08 17:26:45 +00:00
libeio apply clang-format to *.c, *.cpp, *.h, *.hpp files 2021-03-10 10:18:07 -08:00
tests An option to initialize client tracing in setupNetwork (#9209) 2023-02-02 10:00:51 +01:00
ActorFuzz.actor.cpp Address review comments 2022-10-05 11:39:58 -06:00
AsyncFileCached.actor.cpp Make mapAsync usable without specifying template parameters 2022-12-14 14:33:59 -08:00
AsyncFileEncrypted.actor.cpp Bug fixes in AsyncFileEncrypted buffer and class instance lifetimes. IO buffers must be kept alive until underlying reads or writes completes, and some use cases allow the class reference to be dropped while operations are outstanding so that is also made safe. 2022-10-23 17:47:54 -07:00
AsyncFileNonDurable.actor.cpp Reformat source 2023-01-24 15:06:27 -08:00
AsyncFileWriteChecker.cpp Update copyright header dates 2022-03-21 13:36:23 -07:00
Base64Decode.cpp Upgrade C++ Standard to 20 2022-12-06 14:19:06 -08:00
Base64Encode.cpp Make token's 'tenants' field base64-encoded (cf. base64url) 2022-11-04 20:17:08 +01:00
CMakeLists.txt Restart joshua 2023-01-11 12:12:16 -06:00
DDSketchTest.actor.cpp ddsketch: Fix undefined behaviour in DDSketch::getValue 2022-12-08 10:07:11 -08:00
FailureMonitor.actor.cpp format source code after switch to clang 15 2022-12-08 17:26:45 +00:00
FlowTests.actor.cpp Update rare code probe annotations 2022-11-15 13:21:25 -08:00
FlowTransport.actor.cpp Allow unthrottled, unsuppressed traces for security-related events (#9459) 2023-02-27 21:51:13 +01:00
HTTP.actor.cpp Extract IConnection and NetworkAddress out from network.h 2023-01-24 14:48:31 -08:00
HealthMonitor.actor.cpp Fix valgrind error in HealthMonitor 2022-04-07 15:48:06 -07:00
IPAllowList.cpp Extract IConnection and NetworkAddress out from network.h 2023-01-24 14:48:31 -08:00
JsonWebKeySet.cpp Make token's 'tenants' field base64-encoded (cf. base64url) 2022-11-04 20:17:08 +01:00
LinkTest.cpp Add test executables to catch missing symbols 2022-07-06 14:49:33 -07:00
LoadBalance.actor.cpp format source code after switch to clang 15 2022-12-08 17:26:45 +00:00
Locality.cpp Add correctness test for blob restore 2023-01-04 11:10:34 -08:00
Net2FileSystem.cpp Improve support for prebuilt boost 2023-02-27 15:38:58 -06:00
PerfMetric.cpp Update copyright header dates 2022-03-21 13:36:23 -07:00
QueueModel.cpp Update copyright header dates 2022-03-21 13:36:23 -07:00
Replication.cpp Update copyright header dates 2022-03-21 13:36:23 -07:00
ReplicationPolicy.cpp Fix more clang 15 warnings 2022-12-08 14:25:36 -08:00
ReplicationTypes.cpp Update copyright header dates 2022-03-21 13:36:23 -07:00
ReplicationUtils.cpp Convert literal string ref instances to use _sr suffix 2022-09-19 11:35:58 -07:00
SimExternalConnection.actor.cpp Improve support for prebuilt boost 2023-02-27 15:38:58 -06:00
Stats.actor.cpp metrics: Add knob to control emission of DDSketch buckets 2022-12-14 14:33:39 -08:00
TokenCache.actor.cpp Allow unthrottled, unsuppressed traces for security-related events (#9459) 2023-02-27 21:51:13 +01:00
TokenSign.cpp Replace AuthZ's use of tenant names in token with tenant ID 2023-02-03 21:46:31 +01:00
TraceFileIO.cpp Update copyright header dates 2022-03-21 13:36:23 -07:00
actorFuzz.py Use full paths in includes 2022-08-31 14:39:14 -07:00
dsltest.actor.cpp format source code after switch to clang 15 2022-12-08 17:26:45 +00:00
genericactors.actor.cpp Make g_simulator a pointer 2022-09-15 09:00:33 -07:00
sim2.actor.cpp Improve support for prebuilt boost 2023-02-27 15:38:58 -06:00
sim_validation.cpp Make g_simulator a pointer 2022-09-15 09:00:33 -07:00