foundationdb/cmake
Ata E Husain Bohra 33ae398268
REST KmsConnector implementation (#6994)
* REST KmsConnector implementation

Description
  diff-1: Address review comments.
          Add utility interface to Platform namespace to
          create and operate on tmpfile
 diff-2: Address review comments
         Link Boost::filesystem to CMake build process

Major changes includes:
1. Implement REST based KmsConnector implementation.
2. Salient features of the connector:
 2.1. Two required configuration are:
   a. Discovery KMS URLs - enable KMS discovery on bootstrap
   b. Endpoint path configuration to construct URI to fetch/refresh
      encryption keys
   c. Configuration to provide "validationTokens" to connect with
      external KMS. Patch implements file-based token validation scheme.
 2.2. On startup, RESTKmsConnector discovers KMS Urls and caches
      them in-memory. Extracts "validationTokens" based on input config.
 2.3. Expose endpoints to allow fetch/refresh of encryption keys.
 2.4. Defines JSON format to interact with external KMS - request &
      response payload format.
3. Extend Platform namespace with an interface to create and operate on
   tmp files.
4. Update Platform 'readFileBytes' and 'writeFileBytes' to leverage
   fstream supported implementation.

NOTE: KMS URLs fetched after initial discovery will be persisted using
      DynamicKnobs. It is TODO at the moment and shall be completed
      once DynamicKnobs is feature complete

Testing

Unit test to validation following:
1. Parsing on "validation tokens" logic.
2. Construction and parsing of REST JSON request and response strings.
2022-05-07 13:18:35 -07:00
..
AddFdbTest.cmake Addressing review comments 2022-04-20 14:34:19 -05:00
AssertFileDoesntExist.cmake Remove ugly debug message 2019-03-11 17:35:06 -07:00
CPackConfig.cmake Fix several package issues (#4801) 2021-05-12 11:41:26 -05:00
CompileActorCompiler.cmake simplify actorcompiler and target to compile coveragetool 2019-02-15 00:01:42 -08:00
CompileBoost.cmake REST KmsConnector implementation (#6994) 2022-05-07 13:18:35 -07:00
CompileCoverageTool.cmake Fixed dotnet reference errors 2019-04-03 05:33:46 -07:00
CompileRocksDB.cmake update RocskDB and Boost 2022-02-09 10:48:18 -06:00
CompileVexillographer.cmake Ruby bindings for cmake + gem generation 2019-02-15 00:01:42 -08:00
CompilerChecks.cmake Disable static linking for tsan 2020-05-13 20:54:36 +00:00
Config.cmake.in Make find_package work 2019-06-09 15:21:36 -07:00
ConfigureCompiler.cmake Jemalloc integration fixes (#6626) 2022-03-17 15:17:27 -07:00
EnableCsharp.cmake cmake: require mcs, not dmcs, and drop dmcs support 2019-05-07 16:57:56 -10:00
FDBComponents.cmake Remove WITH_TLS CMake variable 2022-05-02 22:45:00 -07:00
FDBInstall.cmake Test compiling an fdb_c app in pkg_tester (#6940) 2022-04-26 11:54:52 -07:00
FindEditline.cmake flow compiling with cmake on OS X 2018-12-13 13:58:06 -08:00
FindGperftools.cmake Fix cmake USE_GPERFTOOLS compiling error 2022-04-08 13:56:06 -07:00
FindLibreSSL.cmake Remove cmake debugging messages 2019-02-07 15:37:04 -08:00
FindRocksDB.cmake Enforcing 6.22.1 rocksdb version and enabling readRange deadline option. 2021-09-17 08:53:23 -07:00
FindSphinx.cmake intermediate commit 2019-02-15 00:01:42 -08:00
FindValgrind.cmake Make valgrind work on Fedora 30 2019-06-11 10:27:08 -07:00
FindWIX.cmake Generate Windows-Installer with cmake 2019-02-07 15:37:04 -08:00
FindWolfSSL.cmake add WolfSSL support (#6682) 2022-04-28 16:53:38 -07:00
Finduring.cmake update RocskDB and Boost 2022-02-09 10:48:18 -06:00
FlowCommands.cmake Backport correctness package 2021-01-15 00:34:47 +00:00
GetMsgpack.cmake Revert "Merge pull request #4802 from sfc-gh-ljoswiak/revert/actor-lineage" 2021-06-04 13:31:55 -07:00
InstallLayout.cmake update prerelease package format (#6733) 2022-04-08 18:15:40 -05:00
Jemalloc.cmake Jemalloc integration fixes (#6626) 2022-03-17 15:17:27 -07:00
Sandbox.conf.cmake Unify flags (#25) 2021-12-14 08:44:39 -08:00
awssdk.cmake Build AWS SDK as part of FDB, and use it to acquire blob credentials. This supports IAM role-based authentication, in addition to all existing credential types. 2022-03-24 10:09:06 -05:00
foundationdb-client.pc.in use FDB_VERSION in lieu of PROJECT_VERSION (package scripts) 2021-11-29 15:11:20 -08:00
jemalloc.patch Apply jemalloc fix, and always build jemalloc (#6610) 2022-03-16 13:19:28 -07:00
user-config.jam.cmake Ensure CompileBoost work on Mac 2021-08-05 07:32:41 -07:00