Skip to content

New Metastore and SessionFactory#1672

Draft
chief-micco wants to merge 39 commits intogodaddy:mainfrom
chief-micco:new-metastore
Draft

New Metastore and SessionFactory#1672
chief-micco wants to merge 39 commits intogodaddy:mainfrom
chief-micco:new-metastore

Conversation

@chief-micco
Copy link
Copy Markdown
Contributor

To help us get this pull request reviewed and merged quickly, please be sure to include the following items:

  • Tests (if applicable)
  • Documentation (if applicable)
  • Changelog entry
  • A full explanation here in the PR description of the work done

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Tests
  • Other

Backward Compatibility

Is this change backward compatible with the most recently released version? Does it introduce changes which might change the user experience in any way? Does it alter the API in any way?

  • Yes (backward compatible)
  • No (breaking changes)

What's new?

This change introduces the following new items:

  • A new MetaStore namespace with a new IKeyMetastore interface that does not leak 3rd party implementation types (newtonsoft and option).
  • A new implementation of the IKeyMetastore in the AWS plugins library that uses System.Text.Json and should improve performance of serialization and deserialization.
  • A new Core namespace with a new SessionFactory interface and implementation that does not leak (or use) 3rd party types (netwonsoft)

* main:
  Bump the minor-and-patch group with 2 updates
  Bump the minor-and-patch group across 2 directories with 11 updates
  Add linter exclusions for AWS SDK v1 deprecation in backward compatibility layer
  Update AWS SDK v1 deprecation comments with EOL context
  Complete AWS SDK v2 test infrastructure migration
  Complete KMS migration to AWS SDK v2 in referenceapp
  Migrate Go samples to AWS SDK v2
  removed toolchain directive
  Migrate Go server from AWS SDK v1 to AWS SDK v2
  Bump AWSSDK.SecurityToken and 2 others
  Bump AWSSDK.DynamoDBv2 and 5 others
  Bump the minor-and-patch group with 2 updates
  updated comments
  update comment on suppression
  Fixed disposable issue and added ability to bring your own client
  updated README
  updates to the reference app
* main:
  bump version to 0.9.0
  bump version to 0.8.0
  Bump the minor-and-patch group across 2 directories with 7 updates
  Complete AWS KMS plugin upgrade to v2
* main:
  Bump the minor-and-patch group across 1 directory with 19 updates
  Bump the minor-and-patch group across 1 directory with 24 updates
  Bump the minor-and-patch group across 1 directory with 10 updates
  Bump Microsoft.Extensions.Logging from 9.0.8 to 9.0.10
  Bump Microsoft.Extensions.Configuration from 9.0.8 to 9.0.10
  Bump the minor-and-patch group with 7 updates
  update go.work - bump go version to 1.24.0
  Bump the minor-and-patch group across 2 directories with 8 updates
  Bump the minor-and-patch group across 2 directories with 5 updates
* main:
  turn off a few other warnings
  just updated target to net10
  reverted cltf to minimal possible
  Update GitHub workflows and Docker files to .NET 10.0
  Update samples and tests to .NET 10.0 and update NuGet packages
  Fix AppEncryption build issues for .NET 10.0
  Remove broken symlink install-dotnet-3.1.sh
  Add .NET 10.0 support and update packages
- Add IDynamoDbMetastoreBuilder interface and DynamoDbMetastoreBuilder implementation
- Add KeySuffix option to DynamoDbMetastoreOptions for Global Tables support
- Add constructor validation for required parameters
- Add DynamoDbMetastoreBuilderTests with comprehensive test coverage
- Update DynamoDbMetastoreTests with KeySuffix tests
Introduces a new Core namespace with cleaner abstractions:
- ISessionPartition/SessionPartition: partition with unified suffix handling
- IEncryptionSession/EncryptionSession/CachedEncryptionSession: simplified session API
- ISessionFactoryBuilder/SessionFactoryBuilder/SessionFactory: builder pattern for sessions
- IEnvelopeCryptoContext/SessionCryptoContext: encapsulates crypto dependencies

Refactors Partition to delegate to SessionPartition and simplifies SuffixedPartition.
Updates EnvelopeEncryption to use ISessionPartition and IEnvelopeCryptoContext.
…PlugIns.Testing

- Add Core SessionFactory/SessionFactoryBuilder and tests
- Add CoreSessionFactoryGenerator and Core regression tests
- Move StaticKeyManagementService to PlugIns.Testing/Kms, remove DummyKeyManagementService
- Update integration tests, ConfigFixture, MetastoreMock for new metastore
- SessionFactory and StaticKeyManagementServiceImpl updates
- README and test project updates
- tartufo: exclude SessionFactoryBuilderTests high-entropy signatures

Made-with: Cursor
…plugins) and MetastoreCompatibilityTest (legacy/core cross-decrypt)

Made-with: Cursor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant