Skip to content

Commit 8f2e932

Browse files
committed
🔧(backend) tool for valid fernet key used in OIDC token storage
Add bin/fernetkey that generates a key for the OIDC_STORE_REFRESH_TOKEN_KEY setting. Signed-off-by: Fabre Florian <ffabre@hybird.org>
1 parent 7a5937d commit 8f2e932

File tree

3 files changed

+32
-9
lines changed

3 files changed

+32
-9
lines changed

bin/fernetkey

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/usr/bin/env bash
2+
3+
# shellcheck source=bin/_config.sh
4+
source "$(dirname "${BASH_SOURCE[0]}")/_config.sh"
5+
6+
_dc_run app-dev python -c 'from cryptography.fernet import Fernet;import sys; sys.stdout.write("\n" + Fernet.generate_key().decode() + "\n");'

env.d/development/common

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,12 @@ OIDC_REDIRECT_ALLOWED_HOSTS=["http://localhost:8083", "http://localhost:3000"]
5050
OIDC_AUTH_REQUEST_EXTRA_PARAMS={"acr_values": "eidas1"}
5151

5252
# Store OIDC tokens in the session
53-
OIDC_STORE_ACCESS_TOKEN = True # Store the access token in the session
54-
OIDC_STORE_REFRESH_TOKEN = True # Store the encrypted refresh token in the session
55-
OIDC_STORE_REFRESH_TOKEN_KEY = ThisIsAnExampleKeyForDevPurposeOnly
53+
OIDC_STORE_ACCESS_TOKEN = True
54+
OIDC_STORE_REFRESH_TOKEN = True # Store the encrypted refresh token in the session.
55+
56+
# Must be a valid Fernet key (32 url-safe base64-encoded bytes)
57+
# To create one, use the bin/fernetkey command.
58+
# OIDC_STORE_REFRESH_TOKEN_KEY="your-32-byte-encryption-key=="
5659

5760
# AI
5861
AI_FEATURE_ENABLED=true

src/backend/core/tests/test_models_documents.py

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1541,9 +1541,16 @@ def test_models_documents_post_save_indexer_deleted(mock_push, indexer_settings)
15411541
user = factories.UserFactory()
15421542

15431543
with transaction.atomic():
1544-
doc = factories.DocumentFactory()
1545-
doc_deleted = factories.DocumentFactory()
1546-
doc_ancestor_deleted = factories.DocumentFactory(parent=doc_deleted)
1544+
doc = factories.DocumentFactory(
1545+
link_reach=models.LinkReachChoices.AUTHENTICATED
1546+
)
1547+
doc_deleted = factories.DocumentFactory(
1548+
link_reach=models.LinkReachChoices.AUTHENTICATED
1549+
)
1550+
doc_ancestor_deleted = factories.DocumentFactory(
1551+
parent=doc_deleted,
1552+
link_reach=models.LinkReachChoices.AUTHENTICATED,
1553+
)
15471554
doc_deleted.soft_delete()
15481555
doc_ancestor_deleted.ancestors_deleted_at = doc_deleted.deleted_at
15491556

@@ -1596,9 +1603,16 @@ def test_models_documents_post_save_indexer_restored(mock_push, indexer_settings
15961603
user = factories.UserFactory()
15971604

15981605
with transaction.atomic():
1599-
doc = factories.DocumentFactory()
1600-
doc_deleted = factories.DocumentFactory()
1601-
doc_ancestor_deleted = factories.DocumentFactory(parent=doc_deleted)
1606+
doc = factories.DocumentFactory(
1607+
link_reach=models.LinkReachChoices.AUTHENTICATED
1608+
)
1609+
doc_deleted = factories.DocumentFactory(
1610+
link_reach=models.LinkReachChoices.AUTHENTICATED
1611+
)
1612+
doc_ancestor_deleted = factories.DocumentFactory(
1613+
parent=doc_deleted,
1614+
link_reach=models.LinkReachChoices.AUTHENTICATED,
1615+
)
16021616
doc_deleted.soft_delete()
16031617
doc_ancestor_deleted.ancestors_deleted_at = doc_deleted.deleted_at
16041618

0 commit comments

Comments
 (0)