2024-01-09 15:30:36 +01:00
|
|
|
# Django
|
|
|
|
|
DJANGO_ALLOWED_HOSTS=*
|
|
|
|
|
DJANGO_SECRET_KEY=ThisIsAnExampleKeyForDevPurposeOnly
|
2024-03-07 19:46:46 +01:00
|
|
|
DJANGO_SETTINGS_MODULE=impress.settings
|
2024-01-09 15:30:36 +01:00
|
|
|
DJANGO_SUPERUSER_PASSWORD=admin
|
|
|
|
|
|
2024-11-12 09:12:19 +01:00
|
|
|
# Logging
|
|
|
|
|
# Set to DEBUG level for dev only
|
|
|
|
|
LOGGING_LEVEL_HANDLERS_CONSOLE=INFO
|
|
|
|
|
LOGGING_LEVEL_LOGGERS_ROOT=INFO
|
|
|
|
|
LOGGING_LEVEL_LOGGERS_APP=INFO
|
|
|
|
|
|
2024-01-09 15:30:36 +01:00
|
|
|
# Python
|
|
|
|
|
PYTHONPATH=/app
|
|
|
|
|
|
2024-03-07 19:46:46 +01:00
|
|
|
# impress settings
|
2024-01-09 15:30:36 +01:00
|
|
|
|
|
|
|
|
# Mail
|
2024-12-13 17:48:08 +01:00
|
|
|
DJANGO_EMAIL_BRAND_NAME="La Suite Numérique"
|
2024-01-09 15:30:36 +01:00
|
|
|
DJANGO_EMAIL_HOST="mailcatcher"
|
2024-12-13 17:48:08 +01:00
|
|
|
DJANGO_EMAIL_LOGO_IMG="http://localhost:3000/assets/logo-suite-numerique.png"
|
2024-01-09 15:30:36 +01:00
|
|
|
DJANGO_EMAIL_PORT=1025
|
2026-01-23 17:56:31 +01:00
|
|
|
DJANGO_EMAIL_URL_APP="http://localhost:3000"
|
2024-01-09 15:30:36 +01:00
|
|
|
|
|
|
|
|
# Backend url
|
2024-03-07 19:46:46 +01:00
|
|
|
IMPRESS_BASE_URL="http://localhost:8072"
|
2024-02-24 00:21:10 +01:00
|
|
|
|
2024-04-06 09:09:46 +02:00
|
|
|
# Media
|
|
|
|
|
STORAGES_STATICFILES_BACKEND=django.contrib.staticfiles.storage.StaticFilesStorage
|
|
|
|
|
AWS_S3_ENDPOINT_URL=http://minio:9000
|
|
|
|
|
AWS_S3_ACCESS_KEY_ID=impress
|
|
|
|
|
AWS_S3_SECRET_ACCESS_KEY=password
|
2024-11-15 11:31:09 +01:00
|
|
|
MEDIA_BASE_URL=http://localhost:8083
|
2024-04-06 09:09:46 +02:00
|
|
|
|
2024-02-24 00:21:10 +01:00
|
|
|
# OIDC
|
|
|
|
|
OIDC_OP_JWKS_ENDPOINT=http://nginx:8083/realms/impress/protocol/openid-connect/certs
|
|
|
|
|
OIDC_OP_AUTHORIZATION_ENDPOINT=http://localhost:8083/realms/impress/protocol/openid-connect/auth
|
|
|
|
|
OIDC_OP_TOKEN_ENDPOINT=http://nginx:8083/realms/impress/protocol/openid-connect/token
|
|
|
|
|
OIDC_OP_USER_ENDPOINT=http://nginx:8083/realms/impress/protocol/openid-connect/userinfo
|
2025-10-03 10:35:50 +02:00
|
|
|
OIDC_OP_INTROSPECTION_ENDPOINT=http://nginx:8083/realms/impress/protocol/openid-connect/token/introspect
|
2024-02-24 00:21:10 +01:00
|
|
|
|
|
|
|
|
OIDC_RP_CLIENT_ID=impress
|
|
|
|
|
OIDC_RP_CLIENT_SECRET=ThisIsAnExampleKeyForDevPurposeOnly
|
|
|
|
|
OIDC_RP_SIGN_ALGO=RS256
|
|
|
|
|
OIDC_RP_SCOPES="openid email"
|
|
|
|
|
|
|
|
|
|
LOGIN_REDIRECT_URL=http://localhost:3000
|
|
|
|
|
LOGIN_REDIRECT_URL_FAILURE=http://localhost:3000
|
|
|
|
|
LOGOUT_REDIRECT_URL=http://localhost:3000
|
|
|
|
|
|
2026-01-23 10:44:03 +01:00
|
|
|
OIDC_REDIRECT_ALLOWED_HOSTS="localhost:8083,localhost:3000"
|
2024-02-24 00:21:10 +01:00
|
|
|
OIDC_AUTH_REQUEST_EXTRA_PARAMS={"acr_values": "eidas1"}
|
2024-09-20 22:42:46 +02:00
|
|
|
|
2025-11-20 10:00:31 +01:00
|
|
|
# Store OIDC tokens in the session. Needed by search/ endpoint.
|
|
|
|
|
# OIDC_STORE_ACCESS_TOKEN = True
|
|
|
|
|
# OIDC_STORE_REFRESH_TOKEN = True # Store the encrypted refresh token in the session.
|
2025-10-01 07:18:26 +02:00
|
|
|
|
|
|
|
|
# Must be a valid Fernet key (32 url-safe base64-encoded bytes)
|
|
|
|
|
# To create one, use the bin/fernetkey command.
|
|
|
|
|
# OIDC_STORE_REFRESH_TOKEN_KEY="your-32-byte-encryption-key=="
|
2025-08-13 06:50:58 +02:00
|
|
|
|
✨(backend) manage reconciliation requests for user accounts (#1878)
For now, the reconciliation requests are imported through CSV in the
Django admin, which sends confirmation email to both addresses. When
both are checked, the actual reconciliation is processed, and all
user-related content is updated.
## Purpose
Fix #1616 // Replaces #1708
For now, the reconciliation requests are imported through CSV in the
Django admin, which sends confirmation email to both addresses. When
both are checked, the actual reconciliation is processed, and all
user-related content is updated.
## Proposal
- [x] New `UserReconciliationCsvImport` model to manage the import of
reconciliation requests through a task
(`user_reconciliation_csv_import_job`)
- [x] New `UserReconciliation` model to store the user reconciliation
requests themselves (a row = a `active_user`/`inactive_user` pair)
- [x] On save, a confirmation email is sent to the users
- [x] A `process_reconciliation` admin action process the action on the
requested entries, if both emails have been checked.
- [x] Bulk update the `DocumentAccess` items, while managing the case
where both users have access to the document (keeping the higher role)
- [x] Bulk update the `LinkTrace` items, while managing the case where
both users have link traces to the document
- [x] Bulk update the `DocumentFavorite` items, while managing the case
where both users have put the document in their favorites
- [x] Bulk update the comment system items (`Thread`, `Comment` and
`Reaction` items)
- [x] Bulk update the `is_active` status on both users
- [x] New `USER_RECONCILIATION_FORM_URL` env variable for the "make a
new request" URL in an email.
- [x] Write unit tests
- [x] Remove the unused `email_user()` method on `User`, replaced with
`send_email()` similar to the one on the `Document` model
## Demo page reconciliation success
<img width="1149" height="746" alt="image"
src="https://github.com/user-attachments/assets/09ba2b38-7af3-41fa-a64f-ce3c4fd8548d"
/>
---------
Co-authored-by: Anthony LC <anthony.le-courric@mail.numerique.gouv.fr>
2026-02-11 19:09:20 +01:00
|
|
|
# User reconciliation
|
|
|
|
|
USER_RECONCILIATION_FORM_URL=http://localhost:3000
|
|
|
|
|
|
2024-09-20 22:42:46 +02:00
|
|
|
# AI
|
2025-03-27 23:21:26 +01:00
|
|
|
AI_FEATURE_ENABLED=true
|
2026-02-26 11:47:25 +01:00
|
|
|
AI_FEATURE_BLOCKNOTE_ENABLED=true
|
|
|
|
|
AI_FEATURE_LEGACY_ENABLED=true
|
2024-09-20 22:42:46 +02:00
|
|
|
AI_BASE_URL=https://openaiendpoint.com
|
|
|
|
|
AI_API_KEY=password
|
|
|
|
|
AI_MODEL=llama
|
2024-11-15 11:36:40 +01:00
|
|
|
|
|
|
|
|
# Collaboration
|
2025-06-20 15:35:19 +02:00
|
|
|
COLLABORATION_API_URL=http://y-provider-development:4444/collaboration/api/
|
2025-03-19 15:41:05 +01:00
|
|
|
COLLABORATION_BACKEND_BASE_URL=http://app-dev:8000
|
2024-11-28 17:00:06 +01:00
|
|
|
COLLABORATION_SERVER_ORIGIN=http://localhost:3000
|
2024-11-18 08:05:54 +01:00
|
|
|
COLLABORATION_SERVER_SECRET=my-secret
|
2025-07-04 10:56:24 +02:00
|
|
|
COLLABORATION_WS_NOT_CONNECTED_READY_ONLY=true
|
2025-03-19 15:41:05 +01:00
|
|
|
COLLABORATION_WS_URL=ws://localhost:4444/collaboration/ws/
|
2025-06-03 09:24:16 +02:00
|
|
|
|
2025-06-26 17:09:08 +02:00
|
|
|
DJANGO_SERVER_TO_SERVER_API_TOKENS=server-api-token
|
2025-06-20 15:35:19 +02:00
|
|
|
Y_PROVIDER_API_BASE_URL=http://y-provider-development:4444/api/
|
2025-06-03 09:24:16 +02:00
|
|
|
Y_PROVIDER_API_KEY=yprovider-api-key
|
2025-10-09 15:09:17 +02:00
|
|
|
|
2025-11-15 16:29:43 +01:00
|
|
|
DOCSPEC_API_URL=http://docspec:4000/conversion
|
|
|
|
|
|
2025-10-09 15:09:17 +02:00
|
|
|
# Theme customization
|
2025-10-06 16:03:14 +02:00
|
|
|
THEME_CUSTOMIZATION_CACHE_TIMEOUT=15
|
|
|
|
|
|
2025-11-03 10:40:40 +01:00
|
|
|
# Indexer (disabled)
|
|
|
|
|
# SEARCH_INDEXER_CLASS="core.services.search_indexers.SearchIndexer"
|
|
|
|
|
SEARCH_INDEXER_SECRET=find-api-key-for-docs-with-exactly-50-chars-length # Key generated by create_demo in Find app.
|
2025-10-06 16:03:14 +02:00
|
|
|
SEARCH_INDEXER_URL="http://find:8000/api/v1.0/documents/index/"
|
|
|
|
|
SEARCH_INDEXER_QUERY_URL="http://find:8000/api/v1.0/documents/search/"
|