Dionisio
8ef62109a3
feat(auth): add OpenID Connect (OIDC) authentication support
...
Implements OIDC Authorization Code Flow for external identity providers
(Authentik, Keycloak, etc.) with JIT user provisioning.
New features:
- OidcService with OpenID Discovery, JWKS caching, RS256 ID token validation
- Authorization Code Flow: /api/auth/oidc/authorize -> IdP -> /api/auth/oidc/callback
- JIT user provisioning from OIDC claims (sub, email, name, groups)
- OIDC group-to-role mapping (admin_groups config)
- Provider info endpoint: GET /api/auth/oidc/providers
- Option to disable password login entirely (OXICLOUD_OIDC_DISABLE_PASSWORD_LOGIN)
- Auto-provision toggle (OXICLOUD_OIDC_AUTO_PROVISION)
- Email collision detection (security: prevents account takeover)
Configuration (env vars):
- OXICLOUD_OIDC_ENABLED, OXICLOUD_OIDC_ISSUER_URL
- OXICLOUD_OIDC_CLIENT_ID, OXICLOUD_OIDC_CLIENT_SECRET
- OXICLOUD_OIDC_REDIRECT_URI, OXICLOUD_OIDC_SCOPES
- OXICLOUD_OIDC_FRONTEND_URL, OXICLOUD_OIDC_PROVIDER_NAME
- OXICLOUD_OIDC_AUTO_PROVISION, OXICLOUD_OIDC_ADMIN_GROUPS
- OXICLOUD_OIDC_DISABLE_PASSWORD_LOGIN
DB migration:
- ALTER TABLE auth.users ADD oidc_provider, oidc_subject columns
- UNIQUE index on (oidc_provider, oidc_subject)
Files changed: 14 files, ~1400 lines added
Dependencies: reqwest 0.12 (rustls-tls-webpki-roots), base64 0.22
2026-02-10 20:32:32 +01:00
Dionisio
65f4e10236
fix(webdav): fully working WebDAV RFC 4918 implementation
...
- Move WebDAV routes to top-level (out of /api nest) for proper path handling
- Add trailing slash routes and HEAD method support
- Refactor all 12 handlers to use Axum State extractor instead of req.extensions()
- Fix MOVE handler to support rename (same-folder move) via rename_file service
- Add Overwrite header support in MOVE/COPY operations
- Add extract_webdav_path() helper for consistent path parsing
- Add precondition_failed variant to AppError
- All 17 integration tests passing: OPTIONS, PROPFIND, MKCOL, PUT, GET, HEAD,
PROPPATCH, COPY, MOVE, LOCK, DELETE (files and folders)
2026-02-10 19:26:28 +01:00
Dionisio
ef9ed2cc31
feat: complete CalDAV (RFC 4791) and CardDAV (RFC 6352) implementation
...
- CalDAV: MKCALENDAR, PROPFIND, PUT/GET/DELETE events, REPORT calendar-query
- CardDAV: MKCOL, PROPFIND, PUT/GET/DELETE vCards, REPORT addressbook-query
- Fix routing: move CalDAV/CardDAV to top-level merge() with explicit routes
- Fix DB schema: VARCHAR(36) -> UUID for entity IDs, vcard_data -> vcard
- Fix 15 repository stub methods that returned empty results
- Fix vCard parser in ContactStorageAdapter (was hardcoded stub)
- All operations tested end-to-end in Docker (201/207/200/204 as expected)
2026-02-10 18:46:59 +01:00
Diocrafts
5bd505ccd7
modernizing frontend
2026-02-08 22:44:42 +01:00
Diocrafts
a82faa5eaf
refactoring hexagonal and clean architecture
2026-02-08 13:40:23 +01:00
Dionisio Pozo
3e4fb67c19
Delete src/domain/services/auth_service.rs
2026-02-07 10:42:39 +01:00
Dionisio
b9d10c7b5c
fix
2026-02-07 04:02:38 +01:00
Dionisio
c952e82b27
refactoring hexagonal architecture
2026-02-06 20:57:00 +01:00
Dionisio
8f2b0a354c
big refactoring
2026-02-03 17:59:04 +01:00
Dionisio
52840e57df
refactor: remove serde from domain entities for Clean Architecture compliance
...
- Remove Serialize/Deserialize from File, Folder, Session, User, Contact entities
- Create contact_persistence_dto.rs for JSONB persistence in infrastructure layer
- Update contact_pg_repository to use persistence DTOs
- Fix dependency on zip crate (downgrade from 7.2.0 to 2.1.0)
- Fix unused variable warnings in main.rs
- Move PathService import from domain to infrastructure
- Add missing fields to CoreServices and RepositoryServices
- Create proper service initialization in main.rs
Clean Architecture improvements:
- Domain layer no longer depends on serde framework
- Persistence concerns isolated to infrastructure layer
- TokenClaims in auth_service.rs is only exception (required for JWT)
2026-02-02 23:56:40 +01:00
DioCrafts
52d8250d51
adding card dav and cald dav
2025-04-13 01:04:04 +02:00
DioCrafts
f2ecbc1a39
adding features
2025-04-12 18:58:21 +02:00
DioCrafts
5306bdc9e3
fix uploding bugs
2025-04-12 12:21:57 +02:00
DioCrafts
5d67bc4d84
fix several bugs
2025-04-10 01:43:25 +02:00
DioCrafts
8f1d213526
improve postgresql performance
2025-04-09 00:21:20 +02:00
DioCrafts
cdf7fb9913
fix webdav
2025-04-04 22:00:29 +02:00
DioCrafts
ba3ef2a530
adding webdav features
2025-04-04 21:31:41 +02:00
DioCrafts
868119e405
adding documentation
2025-04-04 01:48:55 +02:00
DioCrafts
a79c335b73
adding recent feature + bug fixed
2025-04-02 05:08:30 +02:00
DioCrafts
7069a54d8d
adding favorite feature
2025-04-02 03:43:44 +02:00
DioCrafts
705cb5b069
adding pdf and image viewer
2025-04-02 01:22:05 +02:00
DioCrafts
2e1cb4a034
fixing several bugs
2025-03-31 06:20:15 +02:00
dionidev
e79ca8304b
adding comments, moving technical documentation, improve Dockerfile, delete unuseful files
2025-03-30 14:17:09 +00:00
Kareem
73d69ad7b6
server must bind to all interfaces
2025-03-30 00:13:49 -07:00
DioCrafts
3a4cb75ac7
configuring backend topology
2025-03-28 12:38:48 +01:00
DioCrafts
fb276d9b24
adding ui sharing
2025-03-28 08:09:18 +01:00
DioCrafts
f9955bb710
fix warnings
2025-03-28 06:15:09 +01:00
DioCrafts
bfbef18117
fix warnings
2025-03-27 23:41:56 +01:00
DioCrafts
7affff379d
adding search engine
2025-03-27 01:13:34 +01:00
DioCrafts
dacc3ecc4c
adding features
2025-03-26 19:08:07 +01:00
DioCrafts
e22c0ac855
fix trash and additional bugs
2025-03-26 18:33:22 +01:00
DioCrafts
bd623ec07e
adding trash folder
2025-03-24 17:49:53 +01:00
DioCrafts
38b0e9594b
fix auth errors and add primigenial paper trash
2025-03-24 16:47:42 +01:00
DioCrafts
9a9fd72f61
fixing bugs
2025-03-23 22:44:18 +01:00
DioCrafts
cafad0fbfd
adding user authentication
2025-03-20 09:22:31 +01:00
DioCrafts
6e055c3043
adding features
2025-03-19 19:52:12 +01:00
DioCrafts
d9bbd575d2
adding several features
2025-03-19 00:44:27 +01:00
root
fe19bc8505
Initial commit
2025-03-17 21:28:08 +01:00