aws / aws/aws-dynamodb-encryption-java

Enable Encryption and/or Signing Only when Annotated [Feature Request]

Open
#69 0 comments 6 reactions 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
141
Forks
74
PR merge metrics
No merged PRs in 30d

Description

Currently the library encrypts and signs every field in all entities by _default_ unless `@DoNotEncrypt` or `@DoNotTouch` are applied to fields or types.

The feedback I'd like to provide is that most all projects that I've been a part of aren't willing to accept the overhead of client-side encryption on every field and table. It's usually just a few sensitive fields, where the overhead is justified (or required from a regulatory standpoint). Imagine a project with 50 tables where only one requires client-side encryption. With the current default users need to annotate 49 entities with `@DoNotTouch` and leave one table without any annotations - the one where we do want to encrypt attributes.

This feature request is to add a way to change the default to not do anything unless one of the following new annotations are found on the entity or field: `@Encrypt` or `@EncryptAndSign`.

Contributor guide

Open the contributing guide

Research direction

Start by tracing how the library currently applies encryption and signing by default, then locate the annotation handling for @DoNotEncrypt and @DoNotTouch. Determine where entity- and field-level defaults are selected, and identify existing tests for annotations; done should include the new @Encrypt and @EncryptAndSign behavior without requiring opt-out annotations on unrelated entities.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
database, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.