Add encryption support to `use_user_data` hook
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Start by tracing the use_user_data hook and the UserDataModel and ComponentSession definitions, then inspect settings.py and the manage.py command entry points. The work is complete when encrypted storage, key rotation, the reactpy_upgrade_data_encryption command, the deploy warning, and short or low-entropy key warnings are covered.
Written by the indexing model from the issue text.
Description
Current Situation
Our use_user_data hook stores user data as unencrypted binary. If the user wants to encrypt certain key/values, this needs to be done manually which is highly inconvenient.
Proposed Actions
Add built-in encryption support to this hook. This design will be inspired by django-searchable-encrypted-fields.
Based on that library, here's a few specifics about the implementation:
- Create
settings.py:REACTPY_USER_DATA_ENCRYPTION_KEYS: list - Add
encrypted = models.BooleanField(default=False)toUserDataModelandComponentSession - Add new
manage.py reactpy_upgrade_data_encryptionmanagement command.- Encryption keys are upgraded lazily by default, but this command will be used to manually upgrade all data to the newest encryption key.
- Add a check to
manage.py check --deploythat warns if encryption is not enabled. - Warn if encryption keys are too short or lack entropy.
- Dominant language
- Python
- Stars
- 357
- Forks
- 22
- Avg merge
- 10h 31m
- Merged PRs (30d)
- 2
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.
More from reactive-python/reactpy-django
-
Add coverage tests Opencomplexity: 3 (low) priority: 3 (low) type: ci
Difficulty 3/5 1-2 days Newbie friendliness 45/100
-
complexity: 1 (high) priority: 1 (high)
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
complexity: 2 (medium) priority: 3 (low)
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
complexity: 2 (medium) priority: 3 (low)
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
complexity: 1 (high) priority: 2 (moderate)
Difficulty 5/5 Over a week Newbie friendliness 25/100
All issues in reactive-python/reactpy-django
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
bancolombia/sentinel#23 ·
-
test md OpenCI
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·
-
bug client
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100