Ideas
Open
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 1.6k
- Forks
- 78
- PR merge metrics
- No merged PRs in 30d
Description
Please create a new issue to discuss any ideas or share your own.
3.0
- Change
previous_versionsto inherit top-level values (add warning first) - #180
Ideas
- Add
binaryoption to replaceencode(and eventually encode by default forLockbox.new) - Decode to UTF-8 unless
binary: true-utf8branch - (breaking) Don't encode in Base64 for
binarydatabase fields if simple to implement - (breaking) Create new blobs when blobs are attached without
encryptedflag - Prefer
encrypt_attributeanddecrypt_attributeovergenerate_attribute_ciphertextanddecrypt_attribute_ciphertext - Add support for cache stores (
Lockbox::RedisandLockbox::Dalli-cache_storesbranch - orLockbox::Cache::Storefor Active Support cache store) - Use Fiddle for Libsodium -
libsodiumbranch - Warn (and eventually throw error) if the master key is passed to
Lockbox.new - Require
allow_emptyoption to encrypt empty string without padding - Encrypt empty strings in database fields -
model_empty_stringbranch - Add support for encrypted Active Storage service (can wrap any other service) - more useful in 6.1+ since multiple services are supported (blocked since encryption needs to happen before checksum is computed)
- Store the encryption version to make it easy to see which data has been rotated and avoid trying multiple keys. Could be done in an optional new field (
email_ciphertext_version,license_version, blobmetadata) or directly in the ciphertext (needs to work for files/binary data) - Default padding for encoded strings to reduce data leakage (cons: less standard, slightly more space)
- Prefer
ActiveSupport.on_load(:action_text_rich_text) { ActionText::RichText.encrypts :body }overLockbox.encrypts_action_text_body(more code but less magic) - Add
pretty_printmethod (similar toinspect)
On hold
- Support for streaming encryption (probably not needed) -
streamingbranch - Better support for KMS (store key in data/metadata instead of DB) -
kms_encryptbranch - Shrine support -
shrinebranch - WIP
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No specific file, test, or entry point is named; the issue is a broad list of possible changes across encryption, Rails integrations, cache stores, and key management. Choose one unchecked item, review its referenced branch or API, and establish separate scope and acceptance criteria before starting.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rails, ruby
- Domain
- backend, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100